一种方法来检查SQL 2005中是否存在外键

有没有简单的方法来检查表中的列是否存在外键? 我正在写一个脚本,只有当它不存在时才会添加外键。

你可以使用这个脚本:

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并select脚本键作为“DROP TO”来完成,然后您将从SQL中获取生成的脚本。

真厉害! 我刚刚花了两天时间做这个。

 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)