我需要删除 SQL Server 数据库中高度引用的表。如何获取删除表所需删除的所有外键约束的列表?
(SQL 回答比在管理工作室的 GUI 中单击 about 更可取。)
不知道为什么没有人建议,但我sp_fkeys用来查询给定表的外键:
sp_fkeys
EXEC sp_fkeys 'TableName'
您还可以指定架构:
EXEC sp_fkeys @pktable_name = 'TableName', @pktable_owner = 'dbo'
在不指定架构的情况下,文档说明以下内容:
如果未指定 pktable_owner,则应用底层 DBMS 的默认表可见性规则。 在 SQL Server 中,如果当前用户拥有具有指定名称的表,则返回该表的列。如果未指定 pktable_owner 并且当前用户不拥有具有指定 pktable_name 的表,则该过程将查找数据库所有者拥有的具有指定 pktable_name 的表。如果存在,则返回该表的列。
如果未指定 pktable_owner,则应用底层 DBMS 的默认表可见性规则。
在 SQL Server 中,如果当前用户拥有具有指定名称的表,则返回该表的列。如果未指定 pktable_owner 并且当前用户不拥有具有指定 pktable_name 的表,则该过程将查找数据库所有者拥有的具有指定 pktable_name 的表。如果存在,则返回该表的列。