Не удается вставить 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 Откройте индекс, чтобы увидеть, какое поле является уникальным, кроме идентификатора. Это скажет вам, что вам нужно проверить, чтобы увидеть, существует ли запись в настоящее время.

Другие вопросы по тегам