2012-04-14 64 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