代码之家  ›  专栏  ›  技术社区  ›  pthalacker

SQL Server 2005在列名周围加上方括号

  •  4
  • pthalacker  · 技术社区  · 15 年前

    我最近将数据库从SQL Server 2000移到了SQL Server 2005。在表设计器中,它坚持在名为“content”的列周围加上方括号。我在SQL Server的保留字列表中看不到内容,所以我不明白为什么要这样做。我有办法阻止它吗?

    3 回复  |  直到 8 年前
        1
  •  12
  •   Jeremy Smyth    8 年前

    在用架构定义XML列时,Content是一个关键字。

    here .

    编辑:msdn链接已断开(根据champ的评论),因此以下是相关摘录:

    创建一个类型化的XML列非常简单,只需在括号中添加架构的名称,如下所示:

    CREATE TABLE Foo(FooID INT, someXml XML(CONTENT FooSchema))

    此语句表示 someXml 列必须附加到名为的XML架构集合 FooSchema . 您可以指定XML必须是文档,或者通过包含适当的关键字来包含片段, DOCUMENT CONTENT ,分别。如果省略,则默认为 内容 .

        2
  •  3
  •   pthalacker    15 年前

    问题是字段与表同名。SQL Server2000似乎并不关心这种潜在的模糊性,但SQL Server2005确实如此。当我将名为content的字段添加到非命名content的表中时,方括号不会出现。

    帕梅拉

        3
  •  0
  •   David    15 年前

    不,你不能阻止。您总是可以在列名周围添加方括号,这样它就不会损害任何内容。