回答

收藏

如何列出引用SQL Server中给定表的所有外键?

技术问答 技术问答 89 人阅读 | 0 人回复 | 2023-09-13

我需要在SQL Server数据库中删除一个高度引用的表。我如何获取要删除表需要删除的所有外键约束的列表?3 E4 O- B, L3 s' L/ d. `
(与在Management Studio的GUI中单击相比,SQL回答更可取。)
* N4 {9 R: H; ?' O& z               
/ ~; z0 S0 ~8 c+ n* U解决方案:
2 A# R/ t. e: J. r. Q7 x2 _) q               
7 X* k% w# g; q- \5 L) u8 x# v4 ^9 s+ N5 @  A
2 t, J! C8 W, L2 a, q
                不知道为什么没有人建议,但是我sp_fkeys用来查询给定表的外键:) k  Q8 Z% b  B9 p
EXEC sp_fkeys 'TableName'$ K2 i8 v! ^! g& |; h# l
您还可以指定架构:3 ?" X7 ?: \% |' R% E# I4 \) f4 ~8 f
EXEC sp_fkeys @pktable_name = 'TableName', @pktable_owner = 'dbo'+ g! c" J& Y3 X. |# L( Z
在未指定架构的情况下,文档规定以下内容:
! ^+ h7 \" V$ t9 d* C3 ^& s
: s( G: T" ?7 X9 f- b: c3 B如果未指定pktable_owner,则适用基础DBMS的默认表可见性规则。& G4 b3 ]- U( P* G( D/ w
在SQL" Q: G/ @8 q! i
Server中,如果当前用户拥有具有指定名称的表,则返回该表的列。如果未指定pktable_owner且当前用户不拥有具有指定pktable_name的表,则该过程将查找数据库所有者拥有的具有指定pktable_name的表。如果存在,则返回该表的列。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则