Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 可以暂时禁用约束吗?_Sql Server - Fatal编程技术网

Sql server 可以暂时禁用约束吗?

Sql server 可以暂时禁用约束吗?,sql-server,Sql Server,我已经创建了脚本来复制数据库模式和所有对象。接下来,我使用这个命令,C:>sqlcmd–S main\mssqlserver–I C:\test\script.sql 将“源”数据库复制到另一台计算机(用于测试目的)。它会弹出错误“…INSERT语句与CHECK约束“CK_field1”冲突…”。它还会弹出带有外键约束的错误 我找到了这个 显示如何临时禁用外键约束。我的问题是,在创建脚本之前,是否需要在“源”数据库上执行此操作?然后在创建完“目的地”数据库之后,我需要返回以再次启用“源”数据库上

我已经创建了脚本来复制数据库模式和所有对象。接下来,我使用这个命令,C:>sqlcmd–S main\mssqlserver–I C:\test\script.sql 将“源”数据库复制到另一台计算机(用于测试目的)。它会弹出错误“…INSERT语句与CHECK约束“CK_field1”冲突…”。它还会弹出带有外键约束的错误

我找到了这个


显示如何临时禁用外键约束。我的问题是,在创建脚本之前,是否需要在“源”数据库上执行此操作?然后在创建完“目的地”数据库之后,我需要返回以再次启用“源”数据库上的约束?提前感谢您的帮助。

是的。我想你理解对了。谢谢你,索雷尔。我使用EXEC sp_msforeachtable命令“ALTER TABLE?NOCHECK CONSTRAINT all”来禁用所有约束,但它似乎不起作用,因为当我再次启用所有约束时,它会弹出错误消息Msg 547,级别16,状态0,第1行ALTER TABLE语句与外键约束“FK_table1_table2”冲突。冲突发生在数据库“DB1”、表“dbo.table2”、列“sessionid”中。我认为它不起作用,因为这些表之间的约束不受disable constraint命令的影响。