【问题标题】:check constraint in generated scripts检查生成脚本中的约束
【发布时间】:2012-08-08 04:34:47
【问题描述】:

在 SSMS 的任务 > 生成脚本中,我选择了一些表并在生成的 SQL 中得到:

ALTER TABLE [Project]  WITH CHECK ADD  CONSTRAINT [FK_Project_aspnet_Users] FOREIGN KEY([UserId])
REFERENCES [aspnet_Users] ([UserId])
GO
ALTER TABLE [Project] CHECK CONSTRAINT [FK_Project_aspnet_Users]
GO

如果在第一个语句中指定了WITH CHECK,为什么在第二个语句中是CHECK?第二个语句直接出现在第一个语句之后。

TIA

【问题讨论】:

    标签: sql sql-server tsql ssms


    【解决方案1】:

    你是正确的观察到它是多余的。

    这正是 SSMS 生成脚本的方式。

    请注意,脚本可以在生成后进行修改。第一条语句可以更改为使用“WITH NO CHECK”,第二条语句不会是多余的。

    第一个语句的目的是添加约束。

    第二条语句的目的是启用约束。

    至少,我是这样阅读剧本的。如果我逐个手动运行语句,我可能会收到“约束已存在”异常,但该约束可能未启用。

    我仍会运行第二条语句,以确保启用现有约束。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-28
      相关资源
      最近更新 更多