Tsql ALTER TABLE[dbo].[MyTable]检查约束[FK\u MyTable\u SomeCol]
如果使用外键为表编写脚本,则如下所示:Tsql ALTER TABLE[dbo].[MyTable]检查约束[FK\u MyTable\u SomeCol],tsql,Tsql,如果使用外键为表编写脚本,则如下所示: GO ALTER TABLE [dbo].[MyTable] WITH CHECK ADD CONSTRAINT [FK_MyTable_SomeCol] FOREIGN KEY([SomeCol]) REFERENCES [dbo].[MyOtherTable] ([SomeCol]) GO ALTER TABLE [dbo].[MyTable] CHECK CONSTRAINT [FK_MyTable_SomeCol] GO (ALTER TAB
GO
ALTER TABLE [dbo].[MyTable] WITH CHECK ADD CONSTRAINT [FK_MyTable_SomeCol] FOREIGN KEY([SomeCol])
REFERENCES [dbo].[MyOtherTable] ([SomeCol])
GO
ALTER TABLE [dbo].[MyTable] CHECK CONSTRAINT [FK_MyTable_SomeCol]
GO
(
ALTER TABLE[dbo].[MyTable]CHECK CONSTRAINT[FK\u MyTable\u SomeCol]
)的第二部分是什么?这是约束脚本编写方式的产物-尽管没有必要指定这些选项(因为它们是新约束的默认值),同一生成器还可以以完全相同的方式生成NOCHECK
选项
对于ALTER TABLE
表示CHECK
/NOCHECK
的两种不同用法:
WITH CHECK | WITH NOCHECK
指定是否根据新添加或重新启用的外键
或检查
约束验证表中的数据。如果未指定,则对新约束假定为带检查的,对重新启用的约束假定为带NOCHECK的
以及:
{CHECK | NOCHECK}约束
指定启用或禁用约束名称
因此,一个选项是“检查表的当前内容”,另一个选项是“在添加新数据时验证新数据”。这是为表实现的一种方法。在使用外键编写表脚本时,我看不到第二条语句(SQL Server 2008 R2)。您确定第一个不包含带有NOCHECK的而不是带有CHECK的吗?是的,它带有NOCHECK。现在我对它的功能更清楚了。谢谢大家!!