sql-server - 带支票|忽略现有数据检查强制的 NOCHECK 选项

标签 sql-server visual-studio compiler-warnings static-analysis database-project

我正在使用 Visual Studio 2012,其中包含一个 SQL 数据库项目并针对该数据库运行数据库分析,并且它引发以下警告: 带支票 |现有数据检查强制的 NOCHECK 选项被忽略。

我对错误的理解是,当脚本运行时,现有数据的 CHECKNOCHECK 约束将被忽略(在每种情况下,对我来说,它是一个ALTER TABLE)。

我的问题是,为什么检查约束会被忽略?

警告 ID 号

警告 ID 似乎已更改,因此我将两者都包含在下面,以便将来可以轻松搜索。
在 Visual Studio 2010 中,警告 ID 为:SQL03159
在 Visual Studio 2012 中,警告 ID 为:SQL70588

相关信息

ALTER TABLE [dbo].[MyTable] CHECK CONSTRAINT [FK_MyTable_SomeCol]

最佳答案

就我而言,这发生在我导入的脚本中,该脚本的结构如下:

CREATE TABLE [dbo].[ELMAH_Error]
(
    [ErrorId]     UNIQUEIDENTIFIER NOT NULL,
) 
GO
ALTER TABLE [dbo].[ELMAH_Error] WITH NOCHECK ADD 
    CONSTRAINT [PK_ELMAH_Error] PRIMARY KEY NONCLUSTERED ([ErrorId]) ON [PRIMARY]
GO

当我查看上面的代码时,WITH NOCHECK看起来多余,因为该表应该刚刚创建,因此是空的。所以我怀疑这个代码分析警告指出了这种冗余。

关于sql-server - 带支票|忽略现有数据检查强制的 NOCHECK 选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14558263/

相关文章:

visual-studio - 无法调试 Visual Studio 插件

c# - 模拟测试方法

c - 警告 : assignment makes integer from pointer without a cast

c# - java : why there are no exceptions at run time and no compiler warnings? 中的 Arith 溢出

python - 当任何表或行已更新时,mssql 是否可以通过任何方式通知我的 python 应用程序?

c# - 如何在不检查依赖项的情况下构建 C# 项目?

sql-server - SSIS 派生列表达式跳过 null/空白值并获取字符串值的下一个数字

c++ - 更强大的 AC_COMPILE_IFELSE 功能测试?

sql-server - 有没有办法查看 Sql Server 2005 中最近的昂贵查询?

c# - C# 和 SQL Server 中 int 到 guid 的不同转换