如何将XML架构文档分配给具有XML数据类型的SQL Server表的列

时间:2011-09-19 13:48:42

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

我正在使用SQL Server 2008 R2,并且拥有一个包含数据类型XML列的简单表。我创建了一个XML Schema文档,可以正确验证将要存储的XML数据。我的问题是:

  1. 如何将模式分配给列,以便在模式失败时验证XML并拒绝插入?

  2. 是否需要架构才能将XML索引添加到列中,或者是否可以在没有架构文档的情况下添加XML索引?

1 个答案:

答案 0 :(得分:9)

要创建架构集合,可以使用以下命令:

CREATE XML SCHEMA COLLECTION MyXmlSchema AS
N'YourSchemaHere';

然后,将其应用于:

CREATE TABLE MyTable
(
   MyTableId INT PRIMARY KEY
   , XmlData XML (MyXmlSchema)
)

参考:http://technet.microsoft.com/en-us/library/ms176009.aspx

此示例显示您无需在XML上拥有架构,以便能够为列编制索引:http://msdn.microsoft.com/en-us/library/bb510443.aspx