【问题标题】:How can I temporarily disable constraints on my table?如何暂时禁用表上的约束?
【发布时间】:2014-04-24 15:11:20
【问题描述】:

通过this post 之后,我尝试在我的存储过程中添加以下命令:

ALTER TABLE MyTable NOCHECK CONSTRAINT ALL

但是编辑器在它下划线并显示这个错误:

SQL70005: The ALL option cannot be used to modify constraints. You must use individual constraint names instead

我正在使用带有 SQL Server 2008 R2 Express 的 VS2013 Express for Web。我在这里错过了什么?

【问题讨论】:

  • 似乎错误是不言自明的;在此版本的 SQL Server 中,您不能对表设置所有约束。
  • 那么他们在谈论哪个版本?这个问题非常受欢迎,没有人在任何地方指出这一点。
  • 事实上我用谷歌搜索了错误信息并没有得到任何结果:)。不敢相信我是世界上第一个经历这种情况的人。如果在某个特定版本中更改了此行为,则必须在某处记录。
  • 您必须使用整个命令EXEC sp_msforeachtable "ALTER TABLE ? NOCHECK CONSTRAINT all" EXEC sp_msforeachtable 部分很重要。
  • @abhi:即使我不是存储过程专家,我也不敢相信会是这样。你有什么理由这么认为?

标签: sql sql-server visual-studio tsql


【解决方案1】:

您可以编写一个脚本,该脚本将生成所有语句以供您禁用每个语句(并根据需要重新启用。

【讨论】:

    猜你喜欢
    • 2012-07-23
    • 2013-02-07
    • 1970-01-01
    • 1970-01-01
    • 2010-10-18
    • 1970-01-01
    • 1970-01-01
    • 2010-11-07
    • 1970-01-01
    相关资源
    最近更新 更多