【问题标题】:In a visual studio database project, after I add new foreign keys to the project how do I stop it from checking the data against those keys?在 Visual Studio 数据库项目中,在我向项目添加新的外键后,如何阻止它根据这些键检查数据?
【发布时间】:2012-06-26 02:50:05
【问题描述】:

在以前没有外键的情况下,我向数据库项目添加了一堆外键。在生成的 sql 文件 (sql/debug/$projectname.sql) 中,我看到一个以

开头的部分
PRINT N'Checking existing data against newly created constraints';
GO
USE [$(DatabaseName)];


GO
ALTER TABLE [dbo].[table1] WITH CHECK CHECK CONSTRAINT [FK_1];

ALTER TABLE [dbo].[table1] WITH CHECK CHECK CONSTRAINT [FK_2];

然后继续。

如何阻止数据库项目生成根据新约束检查数据的部分?我尝试使用

创建外键
ALTER TABLE dbo.table1 WITH NOCHECK
ADD CONSTRAINT [FK_1]
FOREIGN KEY (blah)
REFERENCES Table2 (blah2)

但没有骰子。有什么建议吗?

【问题讨论】:

    标签: database-project


    【解决方案1】:

    啊哈,在属性文件夹下的 Database.sqldeployment 属性页面中有一个名为 checkNewConstraints 的高级选项。这应该可以解决问题。

    【讨论】:

    • 能否请您粘贴图片(屏幕截图),因为我在 vs2010/2011/2012 中找不到该选项
    • @AnilPurswani 这很奇怪,我也找不到文件了
    • 该文件本身称为 Database.sqldeployment,它位于属性文件夹中。以前可以展开数据库项目中的properties文件夹,点击文件,现在好像不行了!
    • 在 VS 2013 中,您可以找到打开项目属性的此选项。在“调试”选项卡中,有一个会话“部署选项”,最后有一个“高级”按钮,可打开“高级部署设置”。在常规选项卡上,您会找到“新约束的脚本验证”选项。
    【解决方案2】:

    在 VS 2019 中,您可以在下面的屏幕截图中找到它。取消选中“新约束的脚本验证”。

    右键单击您的项目,您将在上下文菜单中找到发布。这将打开“发布数据库”对话框。按照1、2、3(取消勾选此选项),您将能够通过对表中现有数据的验证进行约束检查。

    【讨论】:

      猜你喜欢
      • 2017-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多