0

第二个ALTER TABLE CHECK CONSTRAINT应该在一个IF (NOT) EXISTS以便脚本可以重复执行吗?

IF NOT EXISTS (
    SELECT * FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS 
    WHERE CONSTRAINT_NAME ='fk_RoleId'
)
BEGIN
    ALTER TABLE [dbo].[webpages_UsersInRoles]  WITH CHECK ADD  CONSTRAINT [fk_RoleId] FOREIGN KEY([RoleId])
    REFERENCES [dbo].[webpages_Roles] ([RoleId])
END
GO

-- Put me in an IF ... () BEGIN ... END?
ALTER TABLE [dbo].[webpages_UsersInRoles] CHECK CONSTRAINT [fk_RoleId]
GO

它不会导致任何错误,但如果它应该在一个IF子句中,你如何测试它是否已经运行(if 可以包含什么)?

4

1 回答 1

1

如果您确实想要检查(没有必要),请sys.foreign_keys有一列is_not_trusted

FOREIGN KEY 约束尚未经过系统验证。

于 2013-10-02T13:13:36.970 回答