将数据从一个表移动到另一个SQL Server主键约束

时间:2019-06-12 14:52:18

标签: sql sql-server

我想知道是否有可能将所有数据行从一个表移动到另一个表,以匹配某个查询?

例如,我需要将所有表行从Table1移到Table2,以便它们不再出现在Table1中。

我正在使用SQL Server 2017(Microsoft SQL Server 2017(RTM-CU13)(KB4466404)-14.0.3048.4(X64)2018年11月30日12:57:58版权所有(C)2017 Microsoft Corporation Express Edition(64-位)在Linux(Ubuntu 16.04.5 LTS)上) 和Management Studio 17.8.1。

我有一个具有三列的table1

SID (PK), ID_NAME (FK), AREA

全部为INT数据类型。

问题是我在sid列上有主键,并且由于主键约束,所有将数据从Table1移到Table2的尝试都失败了。

什么是最好的初学者方法?

我已经尝试过从SSMS导入SQL Server导入/导出向导(导出到另一个表),但始终失败并显示错误:

  

违反主键约束'PK__REN_PROS__64A186121EB5F6A0'。无法在对象“ dbo.RENPRO”中插入重复的密钥。重复的键值为(28477872)。

我也尝试通过查询(在教程中找到):

INSERT INTO Table2 (<columns>)
    SELECT <columns>
    FROM Table1
    WHERE <condition>;

DELETE FROM Table1
WHERE <condition>;

COMMIT;

NOCHECK CONSTRAINT列中SID的不同变体。

但是错误总是相同的。

0 个答案:

没有答案