2010-06-11 77 views
0

“许多”方面的所有表和字段,我有一个主表和其他几个表,这些主表通过几个一对多的关系与 有关。 如何在“多”一侧找到与主表中主键 相关的所有表和字段?查找Sql Server 2005中与某个表

我知道我可以通过查询INFORMATION_SCHEMA, 中的视图来提取此信息,但我不知道我在哪里可以找到此信息。

谢谢

回答

0

我找到了答案与SQL服务器组 我用下面的查询一些帮助,它在关系的一边和多边返回了模式名称,表格和字段名称:

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

退房:

INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE INFORMATION_SCHEMA.CONSTRAINT_TABLE_USAGE

+0

感谢您的信息,我会检查出来。 – bzamfir 2010-06-12 10:13:40