2012-09-24 86 views
1

今天我遇到了一個奇怪的問題。我有一個充滿Linq數據訪問層的SQL Server數據庫。現在我有一些列數據類型爲CHAR(100)的例子。將一串空白添加到CHAR列的末尾

當我插入一切似乎工作正常,但是當我檢索這些值有一些序列的空白已添加到每個值的末尾。

有人有想法嗎?

+0

你有沒有想過要做那些值的修剪? – MethodMan

回答

6

這是預期的行爲。 char [(n)]是:

固定長度,非Unicode字符串數據。 n定義了字符串長度,並且必須是從1到8,000的值。存儲大小爲n個字節。字符的ISO同義詞是字符。

也許你的意思是使用varchar [(n | max)]

可變長度,非Unicode字符串數據。 n定義字符串長度 ,可以是1到8,000之間的值。 max表示 的最大存儲大小爲2^31-1個字節(2 GB)。存儲大小爲輸入數據的實際長度+ 2個字節的 。 varchar的ISO同義詞是char變量或字符變化。

+0

你的意思是說,添加的空白是正常的,它始終發生(我的意思是固定長度的字符?)?把價值調整到最後是人們通常做的事情? – Ashkan

+1

'char'將始終將數據填充爲創建列時指定的固定長度。如果你的數據不是固定長度的,你通常不會使用'char',因爲你現在正在經歷的麻煩,以及其他的東西:) – RedFilter

+0

Thiks alot;)我將不得不重新考慮使用固定長度的列就這樣。 – Ashkan