如何关闭/打开Microsoft SQL Server中的所有外键和触发器?

Tim*_*man 2 sql sql-server

插入和修改大量数据可能需要它.

说实话,我在输入问题时已经知道了答案.但是我找到它真的很难,所以我想,这个答案对其他人来说会有所帮助.

但如果你知道更好的方法,你可以自由回答.

所有外键开关

来源:http://www.nxtbook.com/nxtbooks/cmp/msdnmag0407/index.php?startid = 27

__PRE__

所有触发开关

来源:http://www.nxtbook.com/nxtbooks/cmp/msdnmag0407/index.php?startid = 28

__PRE__

Jer*_*ose 10

禁用所有FK:

EXEC sp_MSforeachtable @command1="ALTER TABLE ? NOCHECK CONSTRAINT ALL"
GO
Run Code Online (Sandbox Code Playgroud)

启用所有FK:

EXEC sp_MSforeachtable @command1="ALTER TABLE ? CHECK CONSTRAINT ALL"
GO
Run Code Online (Sandbox Code Playgroud)

禁用所有触发器:

EXEC sp_MSforeachtable @command1="ALTER TABLE ? DISABLE TRIGGER ALL"
GO
Run Code Online (Sandbox Code Playgroud)

启用所有触发器:

EXEC sp_MSforeachtable @command1="ALTER TABLE ? ENABLE TRIGGER ALL"
GO
Run Code Online (Sandbox Code Playgroud)

当然,请注意,如果您在此之前禁用了任何FK /触发器,则启用脚本将重新启用它们.