39 sql sql-server-2005 foreign-keys
有没有一种简单的方法来检查表中的列是否存在外键?我正在编写一个脚本,只有当它不存在时才会添加外键.
Cod*_*ker 70
您可以使用此脚本:
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
Run Code Online (Sandbox Code Playgroud)
如果展开表并右键单击现有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)
Run Code Online (Sandbox Code Playgroud)