一种方法来检查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)