【问题标题】:Finding all tables and fields on "many" side of relations with a certain table在与某个表的关系的“多”端查找所有表和字段
【发布时间】:2011-03-02 19:33:37
【问题描述】:

在 Sql Server 2005 中,我有一个主表,以及其他几个相关的表 这个高手通过几个一对多的关系。 如何找到与 主表中的主键,在“多”端?

我知道我可以通过从 INFORMATION_SCHEMA 查询视图来提取它, 但我不知道在哪里可以找到这些信息。

谢谢

【问题讨论】:

    标签: sql-server sql-server-2005 information-schema


    【解决方案1】:

    退房:

    INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE INFORMATION_SCHEMA.CONSTRAINT_TABLE_USAGE

    【讨论】:

    • 感谢您的信息,我会检查一下。
    【解决方案2】:

    我在 sql server 组的一些帮助下找到了答案 我使用以下查询,它在关系的一侧和多侧返回架构名称、表和字段名称:

    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
    

    【讨论】:

      猜你喜欢
      • 2016-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多