1. ホーム
  2. sql

[解決済み] SQL Serverで、指定したテーブルを参照しているすべての外部キーを一覧表示するにはどうすればよいですか?

2022-03-19 20:54:37

質問

SQL Serverデータベースで、高度に参照されているテーブルを削除する必要があります。 テーブルを削除するために削除する必要があるすべての外部キー制約のリストを取得するにはどうすればよいですか?

(マネジメントスタジオのGUIでクリックするよりも、SQLで回答する方が望ましいです)。

解決方法は?

なぜ誰も提案しないのかわかりませんが、私は sp_fkeys を使用して、指定されたテーブルの外部キーを照会します。

EXEC sp_fkeys 'TableName'

また、スキーマを指定することもできます。

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

スキーマを指定しない場合 ドキュメント は次のように記述しています。

pktable_ownerが指定されていない場合、デフォルトのテーブル可視化ルールは が適用されます。

SQL Serverでは、現在のユーザーが指定されたテーブルを所有している場合、そのテーブルは という名前の場合、そのテーブルのカラムが返される。pktable_ownerがない場合 指定されたテーブルを所有しておらず、現在のユーザーが指定された pktable_name を持つテーブルを探します。 データベース所有者が所有するpktable_name。存在する場合、そのテーブルの カラムが返される。