SqlTransactionとは? わかりやすく解説

SqlTransaction クラス

SQL Server データベースで作成する Transact-SQL トランザクションを表します。このクラスは継承できません。

名前空間: System.Data.SqlClient
アセンブリ: System.Data (system.data.dll 内)
構文構文

Public NotInheritable Class
 SqlTransaction
    Inherits DbTransaction
Dim instance As SqlTransaction
public sealed class SqlTransaction : DbTransaction
public ref class SqlTransaction sealed : public
 DbTransaction
public final class SqlTransaction extends DbTransaction
public final class SqlTransaction extends
 DbTransaction
解説解説
使用例使用例

SqlConnection および SqlTransaction を作成する例を次に示します。BeginTransaction、Commit、Rollback の各メソッドの使い方も示します。トランザクションは、エラーが発生するとロールバックされます。トランザクションをコミットまたはロールバックしようとしたときに発生したエラーを処理するために、Try/Catch エラー処理が使用されています。

Private Sub ExecuteSqlTransaction(ByVal
 connectionString As String)
    Using connection As New SqlConnection(connectionString)
        connection.Open()

        Dim command As SqlCommand = connection.CreateCommand()
        Dim transaction As SqlTransaction

        ' Start a local transaction
        transaction = connection.BeginTransaction("SampleTransaction")

        ' Must assign both transaction object and connection
        ' to Command object for a pending local transaction.
        command.Connection = connection
        command.Transaction = transaction

        Try
            command.CommandText = _
              "Insert into Region (RegionID, RegionDescription) VALUES (100,
 'Description')"
            command.ExecuteNonQuery()
            command.CommandText = _
              "Insert into Region (RegionID, RegionDescription) VALUES (101,
 'Description')"

            command.ExecuteNonQuery()

            ' Attempt to commit the transaction.
            transaction.Commit()
            Console.WriteLine("Both records are written to database.")

        Catch ex As Exception
            Console.WriteLine("Commit Exception Type: {0}",
 ex.GetType())
            Console.WriteLine("  Message: {0}", ex.Message)

            ' Attempt to roll back the transaction.
            Try
                transaction.Rollback()

            Catch ex2 As Exception
                ' This catch block will handle any errors that may have
 occurred
                ' on the server that would cause the rollback to fail,
 such as
                ' a closed connection.
                Console.WriteLine("Rollback Exception Type: {0}",
 ex2.GetType())
                Console.WriteLine("  Message: {0}",
 ex2.Message)
            End Try
        End Try
    End Using
End Sub
private static void ExecuteSqlTransaction(string
 connectionString)
{
    using (SqlConnection connection = new SqlConnection(connectionString))
    {
        connection.Open();

        SqlCommand command = connection.CreateCommand();
        SqlTransaction transaction;

        // Start a local transaction.
        transaction = connection.BeginTransaction("SampleTransaction");

        // Must assign both transaction object and connection
        // to Command object for a pending local transaction
        command.Connection = connection;
        command.Transaction = transaction;

        try
        {
            command.CommandText =
                "Insert into Region (RegionID, RegionDescription) VALUES (100,
 'Description')";
            command.ExecuteNonQuery();
            command.CommandText =
                "Insert into Region (RegionID, RegionDescription) VALUES (101,
 'Description')";
            command.ExecuteNonQuery();

            // Attempt to commit the transaction.
            transaction.Commit();
            Console.WriteLine("Both records are written to database.");
        }
        catch (Exception ex)
        {
            Console.WriteLine("Commit Exception Type: {0}", ex.GetType());
            Console.WriteLine("  Message: {0}", ex.Message);

            // Attempt to roll back the transaction.
            try
            {
                transaction.Rollback();
            }
            catch (Exception ex2)
            {
                // This catch block will handle any errors that may
 have occurred
                // on the server that would cause the rollback to fail,
 such as
                // a closed connection.
                Console.WriteLine("Rollback Exception Type: {0}", ex2.GetType());
                Console.WriteLine("  Message: {0}", ex2.Message);
            }
        }
    }
}
継承階層継承階層
System.Object
   System.MarshalByRefObject
     System.Data.Common.DbTransaction
      System.Data.SqlClient.SqlTransaction
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

SqlTransaction プロパティ


パブリック プロパティパブリック プロパティ

  名前 説明
パブリック プロパティ IsolationLevel オーバーライドされます。 このトランザクションの IsolationLevel を指定します。
明示的インターフェイスの実装明示的インターフェイスの実装
  名前 説明
インターフェイスの明示的な実装 System.Data.IDbTransaction.Connection  
参照参照

関連項目

SqlTransaction クラス
System.Data.SqlClient 名前空間

その他の技術情報

トランザクションの実行

SqlTransaction メソッド


パブリック メソッドパブリック メソッド

( プロテクト メソッド も参照)
  名前 説明
パブリック メソッド Commit オーバーライドされます。 データベース トランザクションをコミットします。
パブリック メソッド CreateObjRef  リモート オブジェクトとの通信に使用するプロキシの生成に必要な情報をすべて格納しているオブジェクトを作成します。 ( MarshalByRefObject から継承されます。)
パブリック メソッド Dispose  DbTransaction によって使用されているアンマネージ リソースを解放します。 ( DbTransaction から継承されます。)
パブリック メソッド Equals  オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 ( Object から継承されます。)
パブリック メソッド GetHashCode  特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。)
パブリック メソッド GetLifetimeService  対象のインスタンスの有効期間ポリシーを制御する、現在の有効期間サービス オブジェクトを取得します。 ( MarshalByRefObject から継承されます。)
パブリック メソッド GetType  現在のインスタンスの Type を取得します。 ( Object から継承されます。)
パブリック メソッド InitializeLifetimeService  対象のインスタンスの有効期間ポリシーを制御する、有効期間サービス オブジェクトを取得します。 ( MarshalByRefObject から継承されます。)
パブリック メソッド ReferenceEquals  指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。)
パブリック メソッド Rollback オーバーロードされます。 オーバーライドされます。 保留中の状態からトランザクションをロールバックします。
パブリック メソッド Save セーブポイントの名前を指定して、トランザクション内にセーブポイントを作成します。セーブポイントは、トランザクションを部分的にロールバックするために使用できます。
パブリック メソッド ToString  現在の Object を表す String を返します。 ( Object から継承されます。)
プロテクト メソッドプロテクト メソッド
参照参照

関連項目

SqlTransaction クラス
System.Data.SqlClient 名前空間

その他の技術情報

トランザクションの実行

SqlTransaction メンバ

SQL Server データベースで作成する Transact-SQL トランザクションを表します。このクラスは継承できません。

SqlTransaction データ型で公開されるメンバを以下の表に示します。


パブリック プロパティパブリック プロパティ
  名前 説明
パブリック プロパティ IsolationLevel オーバーライドされます。 このトランザクションの IsolationLevel を指定します。
パブリック メソッドパブリック メソッド
( プロテクト メソッド も参照)
  名前 説明
パブリック メソッド Commit オーバーライドされます。 データベース トランザクションをコミットします。
パブリック メソッド CreateObjRef  リモート オブジェクトとの通信に使用するプロキシの生成に必要な情報をすべて格納しているオブジェクトを作成します。 (MarshalByRefObject から継承されます。)
パブリック メソッド Dispose  DbTransaction によって使用されているアンマネージ リソースを解放します。 (DbTransaction から継承されます。)
パブリック メソッド Equals  オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 (Object から継承されます。)
パブリック メソッド GetHashCode  特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。)
パブリック メソッド GetLifetimeService  対象のインスタンスの有効期間ポリシーを制御する、現在の有効期間サービス オブジェクトを取得します。 (MarshalByRefObject から継承されます。)
パブリック メソッド GetType  現在のインスタンスの Type を取得します。 (Object から継承されます。)
パブリック メソッド InitializeLifetimeService  対象のインスタンスの有効期間ポリシーを制御する、有効期間サービス オブジェクトを取得します。 (MarshalByRefObject から継承されます。)
パブリック メソッド ReferenceEquals  指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。)
パブリック メソッド Rollback オーバーロードされます。 オーバーライドされます。 保留中の状態からトランザクションをロールバックします。
パブリック メソッド Save セーブポイントの名前を指定して、トランザクション内にセーブポイントを作成します。セーブポイントは、トランザクションを部分的にロールバックするために使用できます。
パブリック メソッド ToString  現在の Object を表す String を返します。 (Object から継承されます。)
プロテクト メソッドプロテクト メソッド
明示的インターフェイスの実装明示的インターフェイスの実装
  名前 説明
インターフェイスの明示的な実装 System.Data.IDbTransaction.Connection  
参照参照

関連項目

SqlTransaction クラス
System.Data.SqlClient 名前空間

その他の技術情報

トランザクションの実行



英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

「SqlTransaction」の関連用語

SqlTransactionのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



SqlTransactionのページの著作権

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.

©2026 GRAS Group, Inc.RSS