Мне было интересно, можно ли переместить все строки данных из одной таблицы в другую, которые соответствуют определенному запросу?
Например, мне нужно переместить все строки таблицы из Таблицы1 в Таблицу2, чтобы они больше не отображались в Таблице 1.
Я использую SQL Server 2017 (Microsoft SQL Server 2017 (RTM-CU13) (KB4466404) - 14.0.3048.4 (X64) 30 ноября 2018 г. 12:57:58 Copyright (C) 2017 Microsoft Corporation Express Edition (64- немного) в Linux (Ubuntu 16.04.5 LTS))
и студия управления 17.8.1.
У меня есть таблица1 с тремя столбцами
SID (PK), ID_NAME (FK), AREA
Все имеют тип данных INT
.
Проблема в том, что у меня есть первичный ключ в столбце sid
, и все попытки переместить данные из Table1
в Table2
не удаются - из-за ограничения первичного ключа.
Какой подход для начинающих лучше всего?
Я пробовал мастер импорта / экспорта SQL сервера (экспорт в другую таблицу) из SSMS, но всегда терпит неудачу с ошибкой:
Нарушение ограничения PRIMARY KEY '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
.
Но ошибка всегда одна и та же.