如何更正SQL Server语法错误设置FK约束?

时间:2014-01-15 00:00:14

标签: sql sql-server ssms

尝试在SSMS 2012中运行此查询:

SET FOREIGN_KEY_CHECKS = 0;

TRUNCATE TABLE dbo.mydb;

SET FOREIGN_KEY_CHECKS = 1;

外键检查中出现此错误

  

Msg 102,Level 15,State 1,Line 3
  '='附近的语法不正确。

因此两个SET命令都失败了。如何修复语法错误?

2 个答案:

答案 0 :(得分:2)

我认为这里有答案。

set foreign key checks off in an insert script

见Adam Machanic的回复。

引用: 的 抱歉,您无法在SQL Server中执行此操作。您可以做的最好的事情是循环遍历所有表(可能是光标),更改所有约束,然后在最后设置它们。但显然这会影响所有用户会话,而不仅仅是当前脚本。

似乎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

答案 1 :(得分:0)

或者您可以使用所有

Alter Table dbo.xy CHECK Constraint All