データベースから行を削除するときに、制約違反を回避するためにクエリを実行しています。可能な限りON DELETE CASCADE
オプションを使用していますが、削除の実行を許可したくない場合があります。
例:
場合:
- 列 ID を持つ DEPT テーブルがあります
- ON DELETE CASCADE オプションなしで DEPT テーブルを参照する列 DEPTID を持つ CUSTOMER テーブルがあります。
- ON DELETE CASCADE オプションで DEPT テーブルを参照する列 DEPTID を持つ AREA テーブルがあります。
次のクエリは、DEPT テーブルを参照する 2 つのテーブル (CUSTOMER と AREA) を一覧表示します。
SELECT *
FROM sys.foreign_key_columns fkc
JOIN sys.columns col ON
fkc.parent_object_id = col.object_id
AND fkc.parent_column_id = col.column_id
WHERE object_name(referenced_object_id) = 'DEPT'
ただし、上記の例では、テーブル CUSTOMER だけで、オプションなしで外部キーを持つテーブルのみをクエリに表示したいと考えています。ON DELETE CASCADE
何か案は?