2012-11-04 61 views
3

我正在使用SQL Server 2008,Visual Web Developer 2012和.net 4.0。我在SQL Server中創建了一個表並添加了一些列。我給了一些列數據類型nchar(10)SQL Server數據庫中數據類型爲nchar的問題

現在我的問題是,當我插入的少於10個字符的字符串作爲列類型nchar(10)的值,當我拿來的價值它插入空格完成10字符串。

意味着,如果我插入"a"nchar(10)類型的列,然後 當我再次讀取該值,我回去:"a "

我怎樣才能解決這個問題?

+1

使用varchar或nvarchar代替 –

+0

而不是改變數據類型,這不可能解決這個問題嗎? – user1740381

+1

更改數據類型是解決方案。您正在使用錯誤的數據類型來滿足您的需要並嘗試更改**數據類型**。我認爲這是不可能的。即使可以改變,你以後也會面臨問題。所以保持簡單 –

回答

0

如果您不希望更改的數據類型,則需要從輸出

SELECT 
    RTRIM("a  ") AS ColumnName 
FROM MyTable 

TRIM空間但這意味着每次你有時間來做到這一點,你所使用的列的每一個地方。用戶VARCHAR(10)或NVARCHAR(20)更好,其中VAR ...表示可變長度。所以,如果不超過10個字符,空格不加你的字符串

最終SQL

SELECT 
    RTRIM(ColumnName) AS ColumnName 
FROM myTable 
3

你可以這樣做修剪空格:

SELECT RTRIM(CAST(col As NVARCHAR(10))) FROM test 

退房SQLFIDDLE

2

定義字符串作爲nvarchar(10)該宏將會l工作正常