Перемещение данных из одной таблицы в другую ограничение первичного ключа SQL Server - PullRequest
0 голосов
/ 12 июня 2019

Мне было интересно, можно ли переместить все строки данных из одной таблицы в другую, которые соответствуют определенному запросу?

Например, мне нужно переместить все строки таблицы из Таблицы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.

Но ошибка всегда одна и та же.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...