四季花海
2019-07-05 09:21:37
如何列出引用SQLServer中給定表的所有外鍵?我需要?jiǎng)h除SQLServer數(shù)據(jù)庫中引用很高的表。如何獲得刪除表所需的所有外鍵約束的列表?(SQL回答比在Managementstudio的GUI中單擊更好。)
3 回答

慕后森
TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個(gè)贊
sp_fkeys
EXEC sp_fkeys 'TableName'
EXEC sp_fkeys @pktable_name = 'TableName', @pktable_owner = 'dbo'
如果未指定pktable_Owner,則應(yīng)用基礎(chǔ)DBMS的默認(rèn)表可見性規(guī)則。
在SQLServer中,如果當(dāng)前用戶擁有具有指定名稱的表,則返回該表的列。如果未指定pktable_Owner,且當(dāng)前用戶沒有擁有具有指定pktable_name的表,則該過程將查找數(shù)據(jù)庫所有者擁有的具有指定pktable_name的表。如果存在,則返回該表的列。

慕工程0101907
TA貢獻(xiàn)1887條經(jīng)驗(yàn) 獲得超5個(gè)贊
select t.name as TableWithForeignKey, fk.constraint_column_id as FK_PartNo, c. name as ForeignKeyColumn from sys.foreign_key_columns as fkinner join sys.tables as t on fk.parent_object_id = t.object_idinner join sys.columns as c on fk.parent_object_id = c.object_id and fk.parent_column_id = c.column_idwhere fk.referenced_object_id = (select object_id from sys.tables where name = 'TableOthersForeignKeyInto')order by TableWithForeignKey, FK_PartNo
select distinct name from sys.objects where object_id in ( select fk.constraint_object_id from sys.foreign_key_columns as fk where fk.referenced_object_id = (select object_id from sys.tables where name = 'TableOthersForeignKeyInto'))
添加回答
舉報(bào)
0/150
提交
取消