MS SQL Server Management Studioでトランザクションを操作する最適な方法 質問する

MS SQL Server Management Studioでトランザクションを操作する最適な方法 質問する

構文的にも意味的にも正しい SQL ステートメントがあり、それが実行されるとします。

Management Studio (またはその他のクエリ ツール) で SQL ステートメントをテストし、何かが壊れていることに気付いた場合はロールバック (別のクエリで) するにはどうすればよいですか?

ベストアンサー1

最も簡単な方法は、コードをトランザクションでラップし、T-SQL コードの各バッチを 1 行ずつ実行することです。

例えば、

Begin Transaction

         -Do some T-SQL queries here.

Rollback transaction -- OR commit transaction

エラー処理を組み込む場合は、TRY...CATCH BLOCK を使用します。エラーが発生した場合は、catch ブロック内でトランザクションをロールバックできます。

例えば:

USE AdventureWorks;
GO
BEGIN TRANSACTION;

BEGIN TRY
    -- Generate a constraint violation error.
    DELETE FROM Production.Product
    WHERE ProductID = 980;
END TRY
BEGIN CATCH
    SELECT 
        ERROR_NUMBER() AS ErrorNumber
        ,ERROR_SEVERITY() AS ErrorSeverity
        ,ERROR_STATE() AS ErrorState
        ,ERROR_PROCEDURE() AS ErrorProcedure
        ,ERROR_LINE() AS ErrorLine
        ,ERROR_MESSAGE() AS ErrorMessage;

    IF @@TRANCOUNT > 0
        ROLLBACK TRANSACTION;
END CATCH;

IF @@TRANCOUNT > 0
    COMMIT TRANSACTION;
GO

詳細については、次のリンクを参照してください。

http://msdn.microsoft.com/en-us/library/ms175976.aspx

おすすめ記事