使用tsql来检测XML依赖项

时间:2011-10-07 04:45:46

标签: sql xml tsql xsd

我有一个绑定到表的XML模式。但是,有时测试人员也会捎带并绑定到这个模式。当有这个“ninja”XML表引用时,对这个模式的任何改动都是痛苦的。

我想在架构更改之前运行查询,如果XML架构绑定到多个表,则引发异常。我查看了sys.sql_dependencies和其他一些sys.xml_XXXX表,但目前还不清楚如何在tsql中执行此操作。是这样的吗?

1 个答案:

答案 0 :(得分:0)

这样的事情可能会有所帮助

select object_name(object_id) as TableName, 
       col_name(object_id, column_id) as ColumnName
from sys.column_xml_schema_collection_usages as U
  inner join sys.xml_schema_collections as S
    on U.xml_collection_id = S.xml_collection_id
where S.name = 'YourXMLSchemaCollectionName'    

这是为了找到在XML参数中使用模式的位置。

select object_name(object_id) 
from sys.parameter_xml_schema_collection_usages as P
  inner join sys.xml_schema_collections as S
    on P.xml_collection_id = S.xml_collection_id
where S.name = 'YourXMLSchemaCollectionName'