2010-06-11 5 views
0

dans Sql Server 2005, j'ai une table principale, et plusieurs autres tables qui sont liées à ce maître à travers plusieurs un à plusieurs relations. Comment puis-je trouver toutes les tables et tous les champs en relation avec la clé primaire dans la table principale, côté "plusieurs"?Trouver toutes les tables et les champs sur "plusieurs" côté des relations avec une certaine table

Je sais que je peux extraire ceci en interrogeant des vues de INFORMATION_SCHEMA, mais je ne sais pas où exactement je peux trouver cette information.

Merci

Répondre

0

J'ai trouvé la réponse avec un peu d'aide sur les groupes de serveurs SQL J'utilise la requête suivante, qui me renvoie le nom du schéma, la table et le nom du champ sur un et plusieurs côtés des relations:

SELECT 
    SchemaParent.name AS ParentSchemaName, 
    TableParent.name AS ParentTableName, 
    ColumnParent.name AS ParentColumnName, 
    SchemaChild.name AS ChildSchemaName, 
    TableChild.name AS ChildTableName, 
    ColumnChild.name AS ChildColumnName 
FROM   
    sys.foreign_key_columns AS kc INNER JOIN 
     sys.objects AS TableChild ON kc.parent_object_id = TableChild.object_id INNER JOIN 
     sys.schemas AS SchemaChild ON TableChild.schema_id = SchemaChild.schema_id INNER JOIN 
     sys.objects AS TableParent ON kc.referenced_object_id = TableParent.object_id INNER JOIN 
     sys.schemas AS SchemaParent ON TableParent.schema_id = SchemaParent.schema_id INNER JOIN 
     sys.columns AS ColumnParent ON kc.referenced_object_id = ColumnParent.object_id AND kc.referenced_column_id = ColumnParent.column_id INNER JOIN 
     sys.columns AS ColumnChild ON kc.parent_object_id = ColumnChild.object_id AND kc.parent_column_id = ColumnChild.column_id 
ORDER BY ParentTableName, ChildTableName 
1

Départ:

INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE INFORMATION_SCHEMA.CONSTRAINT_TABLE_USAGE

+0

Merci pour info, je vais vérifier. – bzamfir

Questions connexes