尝试在 SSMS 2012 中运行此查询:
SET FOREIGN_KEY_CHECKS = 0;
TRUNCATE TABLE dbo.mydb;
SET FOREIGN_KEY_CHECKS = 1;
导致外键检查出现此错误
Msg 102, Level 15, State 1, Line 3
Incorrect syntax near '='.
因此两个 SET 命令都因这个原因而失败。如何修复语法错误?
最佳答案
我想这里已经有了答案。
set foreign key checks off in an insert script
请参阅 Adam Machanic 的回复。
引用: 抱歉,您无法在 SQL Server 中执行此操作。您能做的最好的事情就是循环所有表(也许带有游标),更改所有约束,然后在最后将它们设置回来。但显然这会影响所有用户 session ,而不仅仅是您当前的脚本。
似乎 SQL Server 中最接近的选项是这样的。
-- assuming y has FK to x like
-- constraint fk_y_x foreign key (id) references x (id)
alter table y nocheck constraint fk_y_x
go
关于sql - 如何更正设置 FK 约束的 SQL Server 语法错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21126598/