我有一个应用程序将 xml 文档存储在 SQL Server 的一个列中。 XML 文档的结构类似于下面的结构:
<document>
<item>
...
<phoneNumber>0123456789</phoneNumber>
....
</item>
<item>
...
<phoneNumber>9876543210</phoneNumber>
....
</item>
...
</document>
基本上这一列存储了一组客户信息。 XML 文档在
这样我就可以在表中有一行包含以下值
<document>
<item>
<firstName>Carlos</firstName>
<lastName>Loth</lastName>
<phoneNumber>0123456789</phoneNumber>
</item>
<item>
<firstName>Alberto</firstName>
<lastName>Tomatis</lastName>
<phoneNumber>987654321</phoneNumber>
</item>
</document>
另一行包含此文档
<document>
<item>
<orderNumber>XYZ</orderNumber>
<phoneNumber>0123456789</phoneNumber>
</item>
<item>
<orderNumber>ABC</orderNumber>
<phoneNumber>987654321</phoneNumber>
</item>
</document>
那么,我的问题是是否可以基于 document/item/phoneNumber 元素在该 XML 列上创建索引?我需要执行一个查询,根据 phoneNumber 信息返回存储在其他“固定已知”列中的信息。
有什么建议或想法吗?
提前致谢, 卡洛斯·罗斯。
最佳答案
是的。
SQL Server 2005 支持四种不同类型的 XML 索引。由于 XML 索引与关系索引有些不同,因此在我们着手如何使用它们以获得最大效率之前,有必要了解它们的实现。有一个“主 XML 索引”和三种不同风格的“辅助 XML 索引”。
有关详细信息,请参阅 this MSDN article
您需要先创建主 XML 索引,然后才能定义辅助 XML 索引:
CREATE PRIMARY XML INDEX xml_idx ON your_table(xml_column)
CREATE XML INDEX xml_idx ON your_table(xml_column) FOR PROPERTY
关于sql-server - 是否可以在 SQL Server 2005/SQL Server 2008 的 XML 列中设置索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2209456/