我最近将一个数据库从Sql Server 2000移动到Sql Server 2005。在表设计器中,它坚持用方括号将名为" Content“的列括起来。我看不到Sql Server保留字列表中的内容,因此我不明白它为什么要这样做。有什么方法可以防止它吗?
发布于 2009-09-21 17:56:34
问题是该字段与表具有相同的名称。Sql Server2000似乎并不关心这种潜在的歧义,但Sql Server2005却关心。将名为Content的字段添加到未命名为Content的表中时,未显示方括号。
帕梅拉
发布于 2009-09-04 15:26:23
在使用架构定义XML列时,CONTENT是一个关键字。
参见here。
编辑: MSDN链接被破坏(根据Champ的评论),所以这里是相关的摘录:
创建类型化XML列就像在括号中添加模式名称一样简单,如下所示:
CREATE TABLE Foo(FooID INT, someXml XML(CONTENT FooSchema))
此语句指示someXml
列必须符合名为FooSchema
的XML架构集合。您可以通过分别包含适当的关键字DOCUMENT
或CONTENT
来指定XML必须是文档,或者它可以包含片段。如果省略,缺省值为CONTENT
。
发布于 2009-09-04 15:27:38
不,你不能阻止它。您总是可以在列名两边添加方括号,这样就不会对任何内容造成任何影响。
https://stackoverflow.com/questions/1379913
复制相似问题