Archive for 12月, 2008

SQLServer2005のストアドでTransaction

下のコメントついでに2005の処理
2005からはTry~Catchっぽくなってる
(2000方式でももちろんOK!)
 

BEGIN TRY
BEGIN TRANSACTION            --トランザクションの開始

   --SQL文1

    COMMIT TRANSACTION       --トランザクションを確定
END TRY

--例外処理
BEGIN CATCH
    ROLLBACK TRANSACTION     --トランザクションを取り消し
    PRINT ERROR_MESSAGE()    --エラー内容を戻す
    PRINT 'ROLLBACK TRANSACTION'
END CATCH

SQLServer2000のストアドでTransaction

なんでもやります(笑)って、
今日はちょっとストアド書いていて引っかかったので覚書

SQLを実行してエラーになると@@error変数にエラー番号が格納されるのを使用する方法
 

BEGIN TRANS

--SQL文1
if @@error <> 0 goto hoge

--SQL2
if @@error <> 0 goto hoge

COMMIT
RETURN

hoge:
ROLLBACK
Print N'Error'
RETURN

こんな感じ(笑)