使用VS2010 SQL Server数据库项目在sql脚本中获取'WITH CHECK'输出?

时间:2011-08-18 12:27:55

标签: sql sql-server visual-studio-2010 sql-server-2008

我有一个外键约束,我已经添加到VS2010 SQL Server数据库项目中,我已修改该项目以在约束上指定'WITH CHECK'。

ALTER TABLE [dbo].[Foo] WITH CHECK
ADD CONSTRAINT [FK_FooBar] 
FOREIGN KEY ([BarKey])
REFERENCES [dbo].[Bar] ([Key]) 

生成的架构的.sql输出插入了“WITH NOCHECK”。如果您没有指定任何内容,这似乎是默认值。为项目生成的.dbschema文件没有指定CHECK或NOCHECK,所以我对它来自哪里感到困惑。

任何人都知道怎么做?

干杯

1 个答案:

答案 0 :(得分:3)

拉​​斯塔,

创建新约束时,WITH CHECK是默认值,因此.dbschema不必为您指定。 http://msdn.microsoft.com/en-us/library/ms190273.aspx

从查看为我的数据库项目创建的.sql文件,我看到我的外键在创建时也有WITH NOCHECK。这是为了防止约束违规,直到创建整个结构。为您生成的.sql文件的最后几行应该是现在检查结构已完成的外键。对于上面的例子,它们看起来像这样:

ALTER TABLE [dbo].[Foo] WITH CHECK CHECK CONSTRAINT [FK_FooBar];

这些应该使.sql文件为您提供所需的结果。