2009-09-04 21 views
4

我最近将一个数据库从Sql Server 2000移到Sql Server 2005.在表设计器中,它坚持在名为“Content”的列周围放置方括号,我没有看到内容在Sql Server的保留字列表中,所以我不明白为什么它会这样做。有没有办法阻止它?Sql Server 2005围绕列名放置方括号

+1

“Square”和“Brackets”不是很好的标签。 – maxpower47 2009-09-04 15:22:53

+0

我被告知该标记是来自Access的延期。我也不在乎。 – 2009-09-04 18:06:10

回答

3

问题是该字段与该表具有相同的名称。 Sql Server 2000似乎并不关心这种潜在的歧义,但Sql Server 2005确实如此。当我将名为Content的字段添加到未命名为Content的表格时,方括号不会出现。

pamela

12

CONTENT是使用模式定义XML列时的关键字。

参见here

编辑:MSDN链接被打破(每个冠军的评论),所以这里是相关的摘录:

创建一个类型化XML列如添加括号内的模式的名称一样简单,因为你在这里看到:

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

该声明表明someXml列必须坚持XML架构集合命名FooSchema。您可以指定XML必须是文档,或者可以通过分别包含相应的关键字DOCUMENTCONTENT来包含片段。如果省略,则默认为CONTENT

+1

所有真正的他们确实忘了将它添加到MSDN上的保留字列表:)反正... +1不错的链接 – 2009-09-04 15:33:32

+0

它不是在MSDN上的SQL服务器的关键字列表 – pthalacker 2009-09-18 21:14:37

+0

链接被打破。以下是链接的存档内容:https://web.archive.org/web/20141006161826/http://msdn.microsoft.com/en-us/magazine/cc163611.aspx – Champ 2016-04-13 22:04:58

0

不,你不能阻止它。您总是可以在列名称周围添加方括号,以免造成任何伤害。