我刚安装了Microsoft SQL Server 2008 R2以使用LINQ to SQL进行测试。
我的表有一列nchar(20)和两行:'123'和'Test'。
如果我查询该表中的所有行并用“'”包装每个值,我会得到以下内容:
'123 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ' ( _ is a space)
'Test _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ' ( _ is a space)
SQL Server似乎正在填充未使用的空间(因为该列是一个20字节的nchar)并带有空格。
我该怎么做才能防止这种情况发生?
答案 0 :(得分:18)
使用nvarchar而不是nchar。 nchar是一个固定宽度的字段,填充空格,如您所见。
答案 1 :(得分:2)
将列类型更改为nvarchar
。
答案 2 :(得分:1)
您需要nvarchar
,它很灵活。