将记录从一个表插入另一个表而不违反SQL Server数据库中的任何约束

时间:2015-08-25 03:27:12

标签: sql-server

SQL Server 2008中有2个数据库DB_MainDB_Backup

我想将Table1的数据从DB_Backup复制到Table1的{​​{1}}。

数据库中所有表的结构都是相同的。两个数据库中的表都有外键,主键约束。

当我尝试使用此查询将DB_Main的数据从Table1复制到DB_Backup Table1时:

DB_Main

我收到此外键错误。

  

INSERT语句与FOREIGN KEY约束冲突   " FK_Table1_Table3&#34 ;.冲突发生在数据库" DB_Main"中,   表格"表3",列' RequestID'。

请让我知道将Insert into [DB_Main].[Table1] Select * from [DB_Backup].[Table1]; 的{​​{1}}的所有记录从Table1复制到DB_Backup Table1的任何简单方法,而不违反任何约束条件?

请回复

1 个答案:

答案 0 :(得分:-2)

在插入之前删除或禁用约束FK_Table1_Table3并在其之后启用。

禁用:

ALTER TABLE Table1 NOCHECK CONSTRAINT ALL

ALTER TABLE Table1 NOCHECK CONSTRAINT FK_Table1_Table3

Source

启用

ALTER TABLE Table1 CHECK CONSTRAINT ALL

ALTER TABLE Table1 CHECK CONSTRAINT FK_Table1_Table3