是否有一种简单的方法可以检查表中的列是否存在外键?我正在编写一个脚本,只有当它不存在时才会添加外键。
答案 0 :(得分:69)
您可以使用此脚本:
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获得生成的脚本。
答案 1 :(得分:8)
宇呼!过去两天我只是花了这么多时间。
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)