【问题标题】:Empty space at the end of SQL Server query resultsSQL Server 查询结果末尾的空格
【发布时间】: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 数据类型占用双倍空间。

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


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    将列类型更改为nvarchar

    nchar and nvarchar

    【讨论】:

      【解决方案3】:

      你需要nvarchar,它很灵活。

      【讨论】:

        猜你喜欢
        • 2012-08-26
        • 1970-01-01
        • 2015-03-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多