Загрузка данных


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;