暂时禁用外键

时间:2016-06-08 19:04:04

标签: sql sql-server database

我有这个脚本

TRUNCATE TABLE [dbo].[TableOne]
TRUNCATE TABLE [dbo].[TableTwo]

SET IDENTITY_INSERT [dbo].[TableOne] ON
...Insert stuff....
SET IDENTITY_INSERT [dbo].[TableOne] OFF

SET IDENTITY_INSERT [dbo].[TableTwo] ON
...Insert other stuff....
SET IDENTITY_INSERT [dbo].[TableTwo] OFF

但由于外键约束,我无法截断TableTwo。但这没关系,因为我正在截断相关表并插入新数据。

那么可以暂时禁用外键或其他内容,然后在脚本末尾重新激活它吗?

disable FK

[the script]

enable FK

1 个答案:

答案 0 :(得分:0)

是的,这是可能的。您最好在交易中执行以下操作:

删除约束

截断表格

重新创建约束。

要禁用:

https://msdn.microsoft.com/en-us/library/ms175041.aspx

启用:

http://www.techonthenet.com/sql_server/foreign_keys/enable.php

还有许多其他具体语法示例。