如何在SQL Server中查找外键依赖关系?

24 浏览
0 Comments

如何在SQL Server中查找外键依赖关系?

如何找到特定列上所有外键依赖关系?

有哪些不同的方法(在SSMS中以图形方式、在SQL Server中查询/视图、使用第三方数据库工具、在.NET中编写代码)?

admin 更改状态以发布 2023年5月24日
0
0 Comments

尝试使用以下命令:sp_help [表名]

您将获得有关该表的所有信息,包括所有外键

0
0 Comments

下面的查询将帮助您入门。它列出当前数据库中所有外键关系。

SELECT
    FK_Table = FK.TABLE_NAME,
    FK_Column = CU.COLUMN_NAME,
    PK_Table = PK.TABLE_NAME,
    PK_Column = PT.COLUMN_NAME,
    Constraint_Name = C.CONSTRAINT_NAME
FROM
    INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS C
INNER JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS FK
    ON C.CONSTRAINT_NAME = FK.CONSTRAINT_NAME
INNER JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS PK
    ON C.UNIQUE_CONSTRAINT_NAME = PK.CONSTRAINT_NAME
INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE CU
    ON C.CONSTRAINT_NAME = CU.CONSTRAINT_NAME
INNER JOIN (
            SELECT
                i1.TABLE_NAME,
                i2.COLUMN_NAME
            FROM
                INFORMATION_SCHEMA.TABLE_CONSTRAINTS i1
            INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE i2
                ON i1.CONSTRAINT_NAME = i2.CONSTRAINT_NAME
            WHERE
                i1.CONSTRAINT_TYPE = 'PRIMARY KEY'
           ) PT
    ON PT.TABLE_NAME = PK.TABLE_NAME

您还可以在SQL Server Management Studio中的Database Diagrams中以图形方式查看关系。

0