如何查找引用表?

Gio*_*ato 4 foreign-key sql-server sql-server-2014

我在 SQL Server 2014 上,我有一张User表:

+----+------+-----+
| ID | Name | ... |
+----+------+-----+
| 11 | John | ... |
| 12 | Jack | ... |
| .. | .... | ... |
+----+------+-----+
Run Code Online (Sandbox Code Playgroud)

我有很多表格都引用了这个表格。我可以获得引用此表的所有表的列表吗?而且,特别是,我可以获得引用该表中特定行的所有表的列表吗?

然后我需要将所有引用更新为User12 到User11。

Luk*_*ord 6

当您说“引用此表的表列表”时,您是指具有引用主键的外键的表列表吗?如果是这样,您可以使用以下查询获取引用表“用户”的外键列表:

SELECT name as Foreign_Key
,schema_name(schema_id) as Schema_Name
,object_name(parent_object_id) as Table_Name
FROM sys.foreign_keys
WHERE Referenced_object_id = object_id('dbo.user','U');
Run Code Online (Sandbox Code Playgroud)

如果您的表属于 dbo 以外的其他架构,则替换架构名称。

此查询将为您提供表 User 的所有引用外键。您现在将知道需要在更新语句中进行哪些连接以保持参照完整性。

编辑:woahhhhhh 搞砸了我的答案,db2 的最佳答案在他的查询中提供了更多详细信息。 如何查找与给定主键关联的外键

在特定表的 ORDER BY 子句之前向他的查询添加 WHERE 子句。

前任。WHERE o2.name = '用户'


小智 6

sp_help 'User'
Run Code Online (Sandbox Code Playgroud)

此命令将为您提供此表的所有约束和依赖项。此外,如果您还需要依赖于该表的所有过程,请告诉我。