【发布时间】:2010-10-26 12:38:41
【问题描述】:
有没有一种简单的方法可以检查表中的列是否存在外键?我正在编写一个脚本,仅当外键不存在时才会添加它。
【问题讨论】:
标签: sql sql-server-2005 foreign-keys
有没有一种简单的方法可以检查表中的列是否存在外键?我正在编写一个脚本,仅当外键不存在时才会添加它。
【问题讨论】:
标签: sql sql-server-2005 foreign-keys
你可以使用这个脚本:
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 生成的脚本。
【讨论】:
哇哦!我只是在过去两天做这个。
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)
【讨论】: