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

mil*_*lie 5 xml sql-server xsd sql-server-2008 sql-server-2008-r2

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

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

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

Ada*_*ger 9

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

CREATE XML SCHEMA COLLECTION MyXmlSchema AS
N'YourSchemaHere';
Run Code Online (Sandbox Code Playgroud)

然后,将其应用于:

CREATE TABLE MyTable
(
   MyTableId INT PRIMARY KEY
   , XmlData XML (MyXmlSchema)
)
Run Code Online (Sandbox Code Playgroud)

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

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