'没有检查'和'没检查'之间的区别
问题描述:
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