SQL Server 查询结果末尾的空格
Posted
技术标签:
【中文标题】SQL Server 查询结果末尾的空格【英文标题】:Empty space at the end of SQL Server query results 【发布时间】:2011-03-26 13:53:00 【问题描述】:我刚刚安装了 Microsoft SQL Server 2008 R2 以使用 LINQ to SQL 进行测试。
我有一个表格,其中有一列类型为 nchar(20) 和两行:“123”和“测试”。
如果我查询该表中的所有行并用“'”包装每个值,我会得到以下信息:
'123 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ' ( _ is a space)
'Test _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ' ( _ is a space)
SQL Server 似乎正在用空格填充未使用的空间(因为该列是 20 字节的 nchar)。
我能做些什么来防止这种情况发生?
【问题讨论】:
只是补充一点,它是一个 40 字节的 nchar 而不是你的问题中的 20 。 Unicode 数据类型占用双倍空间。 【参考方案1】:使用 nvarchar 代替 nchar。如您所见,nchar 是一个用空格填充的固定宽度字段。
【讨论】:
【参考方案2】:将列类型更改为nvarchar
。
见nchar and nvarchar。
【讨论】:
【参考方案3】:你需要nvarchar
,它很灵活。
【讨论】:
以上是关于SQL Server 查询结果末尾的空格的主要内容,如果未能解决你的问题,请参考以下文章
sql server查询结果集复制出来的行数和在SSMS上的行数不一致