テーブルの列に外部キーが存在するかどうかを確認する簡単な方法はありますか?外部キーが存在しない場合にのみ追加するスクリプトを書いています。
次のスクリプトを使用できます。
IF EXISTS (SELECT *
FROM sys.foreign_keys
WHERE object_id = OBJECT_ID(N'[dbo].[FK_NAME]')
AND parent_object_id = OBJECT_ID(N'[dbo].[MyTable]'))
BEGIN
-- do stuff
END
これは、テーブルを展開して既存のFKを右クリックし、「DROP TO」としてスクリプトキーを選択すると、SQLから生成されたスクリプトを取得できます。
ウフー!私はこれを行うために過去2日間を費やしました。
IF NOT EXISTS ( SELECT name
FROM sys.foreign_keys
WHERE name = 'FK_Name' )
ALTER TABLE table_name ADD CONSTRAINT FK_Name FOREIGN KEY (idcol)
REFERENCES OtherTable(idcol)