【问题标题】:SQL Server : error validating the default for a XML columnSQL Server:验证 XML 列的默认值时出错
【发布时间】:2013-11-11 21:50:46
【问题描述】:

我正在尝试为刚刚添加的新列设置默认值。在属性中,我试图将 'Default Value or Binding' 设置为一个简单的 XML,如下所示:

<root>
   <title>Welcome</title>
   <body>Thank you for your time.</body>
</root>

但是,当我点击离开时,我得到一个错误:

验证列默认值的 SQL 错误

我在其他数字列中设置了这个值,它工作正常。什么给了?

【问题讨论】:

  • 显示创建表的 SQL。如果您没有为列指定值,它将使用默认值。我认为问题就在那里。
  • 100% 同意 Marc。停止使用设计器和 UI 并学习语法。你会过得很好。

标签: sql sql-server xml sql-server-2008-r2


【解决方案1】:

不确定,但 SQL Server Management Studio 中的可视化设计器通常无法正常工作...

只需使用简单的 T-SQL 语句即可实现相同的目的:

ALTER TABLE dbo.YourTableName
ADD CONSTRAINT DF_YourTable_YourXmlColumn
    DEFAULT '<root><title>Welcome</title><body>Thank you for your time.</body></root>' 
    FOR YourXmlColumn

你就完成了!

(你没有指定你的表名和列名——所以我只是编了占位符——用你的 actual 表名和列名替换它们!另外:对于默认约束,我总是建议指定一个明确的名称——如果你需要的话,以后可以更容易地禁用和/或删除约束;我的默认命名约定显示了——再次:适应你的需要/喜欢

【讨论】:

    【解决方案2】:

    确实,知道要运行什么 TSQL 命令在许多方面都是有利的,但只是为 SQL Server Management Studio 添加一个答案,因此它不会被“它不能正常工作”所覆盖,语法是 (' [此处的xml]')。

    ('<root><title>Welcome</title><body>Thank you for your time.</body></root>')
    

    【讨论】:

      猜你喜欢
      • 2014-08-18
      • 2010-11-04
      • 2012-09-25
      • 2014-10-24
      • 1970-01-01
      • 2020-12-11
      • 1970-01-01
      • 2016-03-22
      • 1970-01-01
      相关资源
      最近更新 更多