2011-10-07 3 views
1

J'ai un schéma XML lié à une table. cependant, parfois les testeurs se greffent et se lient aussi à ce schéma. quand il y a cette référence de table XML "ninja", toute modification de ce schéma est douloureuse. Je souhaite exécuter une requête avant de modifier le schéma et déclencher une exception si le schéma XML est lié à plusieurs tables. J'ai regardé sys.sql_dependencies et quelques-unes des autres tables de sys.xml_XXXX, mais ce n'est pas clair comment faire cela dans tsql. est quelque chose comme ça possible?utilise tsql pour détecter la dépendance XML

Répondre

0

Quelque chose comme cela pourrait être utile

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'  

Celui-ci est de trouver où le schéma est utilisé dans un paramètre 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'