SQL Server Management Studioで既存の外部キーに「カスケード削除」を追加するには:
まず、外部キーを選択し、それを「DROP and Create To ..」を新しいクエリウィンドウで開きます。
次に、コマンドに追加ON DELETE CASCADE
しますADD CONSTRAINT
。
そして、「実行」ボタンを押してこのクエリを実行します。
ちなみに、外部キーのリストを取得し、「カスケード削除」がオンになっているキーを確認するには、次のスクリプトを実行します。
SELECT
OBJECT_NAME(f.parent_object_id) AS 'Table name',
COL_NAME(fc.parent_object_id,fc.parent_column_id) AS 'Field name',
delete_referential_action_desc AS 'On Delete'
FROM sys.foreign_keys AS f,
sys.foreign_key_columns AS fc,
sys.tables t
WHERE f.OBJECT_ID = fc.constraint_object_id
AND t.OBJECT_ID = fc.referenced_object_id
ORDER BY 1
またDROP
、外部キー制約のために特定のテーブルを使用できないことがわかったが、問題の原因となっているFKを特定できない場合は、次のコマンドを実行できます。
sp_help 'TableName'
その記事のSQLには、特定のテーブルを参照するすべてのFKがリストされています。
このすべてがお役に立てば幸いです。
長い指でお詫び申し上げます。私はただ主張しようとしていました。