SQL Server查詢表的外來鍵關係

2021-10-21 02:36:27 字數 855 閱讀 7573

有時候想清空資料庫中的資料,但是要保留表結構,就需要用truncate或delete語句去刪除各個表中的資料。

執行刪除語句的時候,經常會出現以下錯誤:

--無法截斷表 '***',因為該錶正由 foreign key 約束引用。

此時,我們需要去核實***表究竟被哪些表引用了。當表數量較多且引用關係複雜時,手動核實引用關係需要花費大量時間。此時,可以通過執行以下語句查詢某個表的被引用關係:

select zjb.name as '主鍵表', wjb.name as '外來鍵表',zml.name as '外來鍵字段'

from sys.foreign_key_columns fkey join sys.objects wjb on fkey.parent_object_id=wjb.object_id

join sys.columns col on wjb.object_id=col.object_id and parent_column_id=col.column_id

join sys.objects zjb on fkey.referenced_object_id=zjb.object_id

join sys.columns zml on zjb.object_id=zml.object_id and referenced_column_id=zml.column_id

--and zjb.name='被引用的表名'

order by zjb.name

結果如下:

--以上語句原始版本來自於網友貢獻,一併感謝!

查詢表主鍵 外來鍵

專案中用到的一些sql oracle下的 總結 1 查詢表的所有索引 包括索引名,型別,構成列 select t.i.index type from user ind columns t,user indexes i where t.index name i.index name and t.tab...

Sql Server查詢,關閉外來鍵約束的sql

環境 sql server2008 情況 有時候,刪除表資料 delete方式 會受到外來鍵約束,導致刪除失敗 注意 該方式,僅對delete能用,truncate無效 truncate刪除資料,還是會受到外來鍵影響,除非刪除外來鍵,然後刪除資料,再重新建立外來鍵約束,網上有人說可以,但我測試過,依...

如何查詢表外來鍵關聯表

查詢單個表的所有主外來鍵關係 select a.owner 主鍵擁有者 a.table name 主鍵表 b.column name 主鍵列 c.owner 外來鍵擁有者 c.table name 外來鍵表 d.column name 外來鍵列 from user constraints a lef...