У меня есть требование, когда мне нужно вставить новые записи, найденные в записи, в основную таблицу и сопоставить идентификатор идентификатора с основной таблицей.
. Для примера рассмотрим приведенный ниже пример:
-- Insert into Category Master if not exists
INSERT INTO tblCategoryMaster (Category,
CreatedBy,
CreatedDate,
UpdatedBy,
UpdatedDate)
SELECT DISTINCT
(category),
SERVERPROPERTY('MACHINENAME'),
GETDATE(),
SERVERPROPERTY('MACHINENAME'),
GETDATE()
FROM tblTempDataStaging stg
WHERE category IS NOT NULL
AND NOT EXISTS (SELECT 1 FROM tblCategoryMaster ctg WHERE ctg.Category = stg.category);
После выполнения запроса на выборку мы получаем список отдельных записей, и каждый раз, когда в промежуточную таблицу вводится новая запись, записи соответственно заполняются в основной таблице.
Сервер не позволяет мне вставить, из-за чего появляется ошибка: 1008 *
Сообщение 257, Уровень 16, Состояние 3, Строка 39 Неявное преобразование из типа данных sql_variant в nvarchar (max) не допускается. Используйте функцию CONVERT для выполнения этого запроса.
Тип данных промежуточной таблицы NVARCHAR(MAX)
для соответствующих полей, кроме даты и времени для полей даты
Попытка с использованием CONVERT
метод, но я не уверен, как мы используем его с DISTINCT
на картинке
Можете ли вы предложить, как мне решить эту проблему?