SQL Server查询结果末尾的空白空间

时间:2010-08-06 21:53:07

标签: sql-server sql-server-2008 sqldatatypes

我刚安装了Microsoft SQL Server 2008 R2以使用LINQ to SQL进行测试。

我的表有一列nchar(20)和两行:'123'和'Test'。

如果我查询该表中的所有行并用“'”包装每个值,我会得到以下内容:

'123 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ' ( _ is a space)

'Test _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ' ( _ is a space)

SQL Server似乎正在填充未使用的空间(因为该列是一个20字节的nchar)并带有空格。

我该怎么做才能防止这种情况发生?

3 个答案:

答案 0 :(得分:18)

使用nvarchar而不是nchar。 nchar是一个固定宽度的字段,填充空格,如您所见。

答案 1 :(得分:2)

将列类型更改为nvarchar

请参阅nchar and nvarchar

答案 2 :(得分:1)

您需要nvarchar,它很灵活。