1. ホーム
  2. sql

[解決済み] エラーが発生しました。ALTER DATABASE ステートメントがマルチステートメントトランザクション内で許可されていません。

2022-02-17 14:39:02

質問

以下のクエリを実行しようとしていますが、次のようなメッセージが表示されます。 次のようなエラーメッセージが表示されます。

ALTER DATABASEステートメントは、マルチステートメント内で許可されていません。 トランザクションが発生します。

というクエリーがあります。

 ALTER DATABASE TSQL2012
 SET READ_COMMITTED_SNAPSHOT ON;

と、写真にあるようになります。

解決するには?

マルチステートメントトランザクションとは、明示的に BEGIN TRANSACTION ステートメントを使用して作成されたもの、または 暗黙の取引 モード、つまり、あるステートメントが実行され、次のステートメントが実行される前に、そのステートメントを実行するための トランザクション数 はまだ0より大きい。

つまり、コードを実行しようとしている接続では、トランザクション数がすでにゼロより大きいことを意味します。

のどちらかを実行する必要があります。 ROLLBACK (トランザクションの中で既に何が行われたかわからない場合は最も安全)または COMMIT (既に行われたデータの変更を保存する場合に最も安全)を実行し、その後 ALTER DATABASE ステートメントを使用します。