sql-server-2012 - 查找所有相关表

标签 sql-server-2012

我有一个包含大约 1000 个表的数据库,我需要找到与特定表相关的所有表,比如说客户表。我该如何进行?

最佳答案

当您要求查找与特定表相关的所有表时,我假设您要查找所有具有指向“客户”表的外键引用的表。这与previous Stack Overflow question密切相关.以下使用系统目录 View 的查询应该可以解决问题:

select t.name as TableWithForeignKey, fk.constraint_column_id as FK_columns , c.name as ForeignKeyColumn 
    from sys.foreign_key_columns as fk
        inner join sys.tables as t on fk.parent_object_id = t.object_id
        inner join sys.columns as c on fk.parent_object_id = c.object_id and fk.parent_column_id = c.column_id
    where fk.referenced_object_id = (select object_id from sys.tables where name = 'customers')
    order by TableWithForeignKey, ForeignKeyColumn 

MSDN sys.foreign_key_columns

关于sql-server-2012 - 查找所有相关表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14057190/

相关文章:

sql - 可以使用外键在同一张表中对父子关系建模吗?

mysql - 如何创建一个自动流程以在某个字段更改时更新记录

sql - 如何通过SQL查询在组中添加选择?

SQL 日期过滤

c# - 为什么 FireError 在 C# 2012 中失败,但在 VB 中有效,而 FireInformation 在两者中都有效?

t-sql - 比较表并获取不匹配的值

sql-server - 使用 Case 或 Join 的 TSQL Select 语句

visual-studio-2012 - 如何在 sqlproj (SQL Server 2012) 脚本中使用 msbuild 属性

sql - 将 nvarchar 转换为日期时间

c# - 以编程方式更改 SQL Server 配置