2012-04-14 80 views
0

我有這樣的問題,即在我的數據庫我我的文字後得到很多空的空間,SQL服務器:空格行

在我的郵件我有"[email protected]+_________________________________________"很多空間

我的郵箱行nchar(255)

並且發生在我所有的桌子上

任何人都可以向我解釋爲什麼會發生這種情況以及如何解決這個問題?

回答

4

CHARNCHAR會自動右鍵填充帶空格的字符串以符合定義的長度。使用NVARCHAR(255)而不是NCHAR(255)

+0

我現在明白了,謝謝。 – kenan 2012-04-14 23:19:07

0

你應該使用nvarchar的

SQL Server提供了兩種數據類型來存儲字符信息。大多數情況下,兩種數據類型在SQL Server或應用程序中使用它們的方式是相同的。不同之處在於nvarchar用於存儲unicode數據,用於將多語言數據存儲在數據庫表中。其他語言有一組擴展的字符代碼需要保存,這種數據類型允許這種擴展。如果您的數據庫不存儲多語言數據,則應該使用varchar數據類型。原因是nvarchar需要兩倍於varchar的空間,這是因爲需要存儲其他語言的擴展字符代碼

+1

你已經解釋了varchar和nvarchar之間的區別,但沒有解釋nchar和nvarchar之間的區別。 – 2012-04-15 01:00:08

+2

@Blam OP正在使用'nchar'。哈利斯建議使用'nvarchar'代替,然後解釋'nvarchar'與'varchar'的區別。如果他建議'nvarchar'與'nchar',不應該解釋如何'nvarchar'與'nchar'有什麼不同? – 2012-04-15 02:52:25

+0

@AaronBertrand同意 – Paparazzi 2012-04-15 12:28:05