7

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

我有一个表格,其中有一列类型为 nchar(20) 和两行:“123”和“测试”。

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

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

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

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

我能做些什么来防止这种情况发生?

4

3 回答 3

18

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

于 2010-08-06T21:55:39.860 回答
2

将列类型更改为nvarchar

请参阅nchar 和 nvarchar

于 2010-08-06T21:54:37.747 回答
1

你需要nvarchar,它是灵活的。

于 2010-08-06T21:55:09.490 回答