'没有检查'和'没检查'之间的区别

'没有检查'和'没检查'之间的区别

问题描述:

SQL Server中'WITH NO CHECK'和'NO CHECK'之间的区别是什么?

what is difference between ‘WITH NO CHECK’ and ‘NO CHECK’ in SQL Server ??

使用WITH NO CHECK:



我们有一张包含100条记录的表。

1)现在我们通过改变该表创建一个外键约束



Using WITH NO CHECK:

We have a table with 100 records.
1)Now we are creating a foreign Key Constraint by altering that table

ALTER TABLE [Sales].[SalesOrderDetailTemp]
    WITH NOCHECK
    ADD CONSTRAINT [FK_SalesOrderDetailTemp_SalesOrderHeader_SalesOrderID] FOREIGN KEY([SalesOrderID])
    REFERENCES [Sales].[SalesOrderHeader] ([SalesOrderID])





这里使用NOCHECK选项

- >外键不检查旧100记录存在于引用表(Salesorderheader)中

- >而不是外键将检查插入的新记录。



使用NOCHECK:



Here by using NOCHECK option
-->Foreign key does not Checks for old 100 records exists in References table (Salesorderheader)
-->Instead of Foreign key will check for New record inserted.

Using NOCHECK:

ALTER TABLE [Sales].[SalesOrderDetailTemp]
    NOCHECK CONSTRAINT [FK_SalesOrderDetailTemp_SalesOrderHeader_SalesOrderID]



此选项禁用该特定表的约束


This option Disables the Constraint of that Particular table