亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何列出引用SQLServer中給定表的所有外鍵?

如何列出引用SQLServer中給定表的所有外鍵?

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

3 回答

?
慕后森

TA貢獻1802條經驗 獲得超5個贊

不知道為什么沒人建議但我用sp_fkeys查詢給定表的外鍵:

EXEC sp_fkeys 'TableName'

還可以指定架構:

EXEC sp_fkeys @pktable_name = 'TableName', @pktable_owner = 'dbo'

在不指定架構的情況下,博士聲明如下:

如果未指定pktable_Owner,則應用基礎DBMS的默認表可見性規則。

在SQLServer中,如果當前用戶擁有具有指定名稱的表,則返回該表的列。如果未指定pktable_Owner,且當前用戶沒有擁有具有指定pktable_name的表,則該過程將查找數據庫所有者擁有的具有指定pktable_name的表。如果存在,則返回該表的列。


查看完整回答
反對 回復 2019-07-05
?
慕工程0101907

TA貢獻1887條經驗 獲得超5個贊

我會在SQLServerManagementStudio中使用數據庫圖表功能,但由于您排除了這種情況-這在SQLServer 2008中是有效的(請不要使用2005年)。

要獲得引用表和列名的列表.。

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'))


查看完整回答
反對 回復 2019-07-05
  • 3 回答
  • 0 關注
  • 1108 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號