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

标签 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
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/

相关文章:

SQL允许相同的列名

sql - 如何在 SSMS 中备份或脚本化数据库的所有同义词?

sql-server - MS SQL Management Studio 2008 R2 SP1 + SSMS 工具。不折叠开始/结束区域

python - 如何从现有数据制造 Django ORM QueySet/从纯 SQL 返回 ORM 查询?

php - 替换MySQL中的复杂字符串

sql - 在 SQL 中选择时间戳范围

sql - 为什么执行存储过程比脚本中的 SQL 查询更快?

MYSQL 多列 COUNT DISTINCT

SQL从单列到多列的多个日期

sql - 有没有办法在 SSMS 2012 中对常用表进行收藏或加注星标?