我最近将数据库从Sql Server 2000移动到Sql Server 2005.在表设计器中,它坚持在名为“Content”的列周围放置方括号我没有在Sql的保留字列表中看到Content服务器,所以我不明白它为什么这样做。有没有办法阻止它?
答案 0 :(得分:12)
在定义带有架构的XML列时,CONTENT是一个关键字。
请参阅here。
编辑:MSDN链接中断(根据Champ的评论),所以这是相关的摘录:
创建类型化XML列就像在括号中添加模式名一样简单,如下所示:
CREATE TABLE Foo(FooID INT, someXml XML(CONTENT FooSchema))
此语句指示
someXml
列必须遵循名为FooSchema
的XML架构集合。您可以通过分别包含适当的关键字DOCUMENT
或CONTENT
来指定XML必须是文档,还是可以包含片段。如果省略,则默认为CONTENT
。
答案 1 :(得分:3)
问题是该字段与表的名称相同。 Sql Server 2000似乎并不关心这种潜在的歧义,但Sql Server 2005确实如此。当我将名为Content的字段添加到未命名为Content的表时,方括号不会出现。
帕梅拉
答案 2 :(得分:0)
不,你无法阻止它。您始终可以在列名称周围添加方括号,这样就不会有任何损害。