Как зафиксировать и откатить транзакцию на сервере sql?

У меня есть огромный скрипт для создания таблиц и переноса данных с одного сервера. Таким образом, этот сценарий в основном содержит -

  1. Создание операторов для таблиц.
  2. Вставка для переноса данных в эти вновь созданные таблицы.
  3. Создание операторов для хранимых процедур.

Итак, у меня есть этот код, но он в основном не работает. @@ ERROR всегда равен нулю, я думаю ..

BEGIN TRANSACTION
--CREATES
--INSERTS
--STORED PROCEDURES CREATES
    -- ON ERROR ROLLBACK ELSE COMMIT THE TRANSACTION
    IF @@ERROR != 0
        BEGIN

            PRINT @@ERROR
                      PRINT 'ERROR IN SCRIPT'
            ROLLBACK TRANSACTION
            RETURN
        END
    ELSE
    BEGIN
        COMMIT TRANSACTION
        PRINT 'COMMITTED SUCCESSFULLY'
    END
    GO

Кто-нибудь может помочь мне написать транзакцию, которая откатывается при ошибке и фиксируется, если все в порядке .. Могу ли я используйте RaiseError как-нибудь здесь ..

15
задан Vishal 14 October 2010 в 17:54
поделиться