【问题标题】:Extra spaces being added at the tail in the column在列的尾部添加额外的空格
【发布时间】:2011-06-01 04:14:00
【问题描述】:

当我将数据保存到表中时,额外的空格被添加到尾部的值中。我观察到,由于列长度为 5,如果我插入一个 3 字符长度的值,则会添加 2 个额外的空格。谁能解决这个问题。

【问题讨论】:

  • 请提供插入语句和表定义。
  • 感谢您提出这个问题。

标签: sql-server sql-server-2005 database-design sql-server-2000


【解决方案1】:

列类型是CHAR(5) 而不是VARCHAR(5)

  • CHAR(x) 创建一个始终存储 x 个字符的列,并用空格填充数据。
  • VARCHAR(x) 创建一个列,该列改变字符串的长度以匹配插入的数据。

【讨论】:

  • +1 varchar 仍然可以使用 SET ANSI_PADDING ON 的尾随空格
  • @gbn 我从未查看过该设置的实际作用;谢谢你让我研究它。如果我正确理解文档,即使 ANSI_PADDING ON,VARCHAR(x) 列也只会包含尾随空格,如果你明确地把它们放在那里。
  • 正确,但是会导致confusion 尤其是在以后的版本中会开启的时候。
【解决方案2】:

这是CHAR 数据类型的属性。如果您不需要额外的空格,则需要使用VARCHAR,尽管与标准CHAR 相比,对于一个小字段,开销最小。话虽如此,相信现在的VARCHARCHAR一样好。

【讨论】:

    【解决方案3】:

    CHAR 变量将存储这个额外的填充,也许您需要使用 VARCHAR2 变量来代替?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-03-29
      • 2017-01-21
      • 1970-01-01
      • 2013-01-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多