Не удается вставить INTO SELECT в таблицу со столбцом идентификаторов
В SQL-сервере я использую переменную таблицы, и когда я закончу с ней, я хочу вставить ее значения в реальную таблицу, в которой есть столбец идентификаторов, который также является PK.
Переменная таблицы, которую я создаю, имеет два столбца; физическая таблица имеет четыре, первым из которых является столбец идентификации, целое число IK. Типы данных для столбцов, которые я хочу вставить, совпадают с типами данных целевых столбцов.
INSERT INTO [dbo].[Message] ([Name], [Type])
SELECT DISTINCT [Code],[MessageType]
FROM @TempTableVariable
Это не с:
Невозможно вставить повторяющуюся строку ключа в объект "dbo.Message" с уникальным индексом "IX_Message_Id". Дубликат значения ключа (ApplicationSelection).
Но при попытке вставить только значения (...) все работает нормально.
Как я правильно понял?
1 ответ
Похоже, что данные "ApplicationSelection" уже находятся в базе данных. Вам нужно написать выбор, чтобы исключить записи, которые уже находятся в базе данных. Вы можете сделать это с помощью пункта, где не существует или левым соединением. L Откройте индекс, чтобы увидеть, какое поле является уникальным, кроме идентификатора. Это скажет вам, что вам нужно проверить, чтобы увидеть, существует ли запись в настоящее время.