我想知道是否有可能将所有数据行从一个表移动到另一个表,以匹配某个查询?
例如,我需要将所有表行从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
的不同变体。
但是错误总是相同的。