BEGIN TRANSACTION;
BEGIN TRY
-- 1. PROJECT_CARD
SELECT ID_PROJECT_CARD
INTO #PC
FROM PROJECT_CARD
WHERE NAME LIKE 'Лента - Эксмо - Книги (разбор сезона)%';
-- 2. LOCATION
SELECT ID_LOCATION
INTO #LOC
FROM LOCATION
WHERE NAME IN (
'ТК "Лента-4" ул.Бухарестская, 69',
'ТК "Лента-8" Московское шоссе, 16'
)
-- 3. PARENT
SELECT ID_CONTRACTS_GG_PARENT_CATEGORICAL
INTO #PARENT
FROM CONTRACTS_GG_PARENT_CATEGORICAL
WHERE ID_PROJECT_CARD IN (SELECT ID_PROJECT_CARD FROM #PC)
AND ID_LOCATION IN (SELECT ID_LOCATION FROM #LOC);
-- 4. GG_CATEG
SELECT ID_CONTRACTS_GOODS_GROUP_CATEGORICAL
INTO #GG
FROM CONTRACTS_GOODS_GROUP_CATEGORICAL
WHERE ID_CONTRACTS_GG_PARENT_CATEGORICAL IN (SELECT ID_CONTRACTS_GG_PARENT_CATEGORICAL FROM #PARENT);
-- Проверка
--SELECT * FROM #GG;
--SELECT *
--FROM WORK_PERIOD_ITEM
--WHERE ID_CONTRACTS_GOODS_GROUP_CATEGORICAL IN (SELECT ID_CONTRACTS_GOODS_GROUP_CATEGORICAL FROM #GG);
-- Удаление
UPDATE WORK_PERIOD_ITEM
SET DATE_DELETED = GETDATE()
WHERE ID_CONTRACTS_GOODS_GROUP_CATEGORICAL IN (SELECT ID_CONTRACTS_GOODS_GROUP_CATEGORICAL FROM #GG);
SELECT 'WORK_PERIOD_ITEM: ' + CAST(@@ROWCOUNT AS VARCHAR);
UPDATE CONTRACTS_GOODS_GROUP
SET DATE_DELETED = GETDATE()
WHERE ID_CONTRACTS_GOODS_GROUP_CATEGORICAL IN (SELECT ID_CONTRACTS_GOODS_GROUP_CATEGORICAL FROM #GG);
SELECT 'CONTRACTS_GOODS_GROUP: ' + CAST(@@ROWCOUNT AS VARCHAR);
-- Проверить, есть ли назначения
UPDATE MERCH_2_LOCATION_GOODS_GROUP
SET DATE_DELETED = GETDATE()
where ID_CONTRACTS_GOODS_GROUP_CATEGORICAL IN (SELECT ID_CONTRACTS_GOODS_GROUP_CATEGORICAL FROM #GG);
UPDATE CONTRACTS_GOODS_GROUP_CATEGORICAL
SET DATE_DELETED = GETDATE()
WHERE ID_CONTRACTS_GOODS_GROUP_CATEGORICAL IN (SELECT ID_CONTRACTS_GOODS_GROUP_CATEGORICAL FROM #GG);
SELECT 'GG_CATEG: ' + CAST(@@ROWCOUNT AS VARCHAR);
UPDATE WORK_PERIOD
SET DATE_DELETED = GETDATE()
WHERE ID_CONTRACTS_GG_PARENT_CATEGORICAL IN (SELECT ID_CONTRACTS_GG_PARENT_CATEGORICAL FROM #PARENT);
SELECT 'WORK_PERIOD: ' + CAST(@@ROWCOUNT AS VARCHAR);
UPDATE CONTRACTS_GG_PARENT_CATEGORICAL
SET DATE_DELETED = GETDATE()
WHERE ID_CONTRACTS_GG_PARENT_CATEGORICAL IN (SELECT ID_CONTRACTS_GG_PARENT_CATEGORICAL FROM #PARENT);
SELECT 'GG_PARENT_CATEG: ' + CAST(@@ROWCOUNT AS VARCHAR);
-- ВАЖНО: по умолчанию откат
--ROLLBACK TRANSACTION;
SELECT 'ROLLBACK выполнен (по умолчанию)' as 'RESULT (NICE)';
-- Когда проверишь — замени ROLLBACK TRANSACTION; на COMMIT TRANSACTION;
COMMIT TRANSACTION;
--SELECT 'COMMIT выполнен' as 'RESULT (NICE)';
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION;
SELECT 'Ошибка: ' + ERROR_MESSAGE() as 'RESULT (ERROR)';
END CATCH;