Добрый день, не могу понять, в чем ошибка запроса.
Запрос:
SELECT * INTO #temp_MarkaAutos_1644569816 FROM MarkaAutos WHERE 1<>1; --создаем временную таблицу из существующей (структура)
SET IDENTITY_INSERT #temp_MarkaAutos_1644569816 ON; --разрешаем вставку рк временной
SET IDENTITY_INSERT MarkaAutos ON; --разрешаем вставку рк
INSERT INTO #temp_MarkaAutos_1644569816 (id,name,icon,slug,rusName) VALUES ('1','Acura','.jpg','acura','Акура');
MERGE INTO MarkaAutos AS t
USING #temp_MarkaAutos_1644569816 AS t2
ON 1=2
WHEN MATCHED THEN
UPDATE SET name = t2.name,icon = t2.icon,slug = t2.slug,rusName = t2.rusName
WHEN NOT MATCHED THEN
INSERT (id,name,icon,slug,rusName) VALUES (t2.id,t2.name,t2.icon,t2.slug,t2.rusName);
SET IDENTITY_INSERT MarkaAutos OFF; --отключаем вставку рк
DROP TABLE #temp_MarkaAutos_1644569816; --удаляем временную таблицу
Ошибка:
SQL (8107): IDENTITY_INSERT is already ON for table 'tempdb.dbo.#temp_MarkaAutos_1644569816'. Cannot perform SET operation for table 'MarkaAutos'.uery
При этом, если я уберу из запроса разрешение на вставку РК во временную таблицу, то ошибка о том, что нельзя вставить РК т.к. IDENTITY_INSERT is OFF.