やりたいこと
- VSCodeの拡張機能(mssql)で、SQL Serverへ接続する際に、オートコミットの設定を切りたい
- 間違ってSQLを流してしまった際に簡単にロールバックできるようにしておきたい
やり方
前提:拡張機能(mssql)のインストール
これです。
使い方についてはこちらの記事が分かりやすかったです。
オートコミットを外す
command
+ ,
(Windowsなら、ctrl
+ ,
)で、VSCodeの設定を開きます。もしくは、VSCodeのウィンドウ左下からも開けます。
設定タブを開けたら、「mssql transaction」とでも検索して、「Implicit Transactions」のチェックボックスをチェックしてください。(デフォルトだとチェックがついていない状態です。)
IMPLICIT_TRANSACTIONSとは
SQL Serverのドキュメントの解説を見ると、
ON の場合、システムは "暗黙" トランザクション モードです。 つまり、@@TRANCOUNT = 0 の場合に、次の Transact-SQL ステートメントのいずれかが新しいトランザクションを開始します。 これは、最初に実行される目に見えない BEGIN TRANSACTION と同じです。
とあります。
BEGIN TRANSACTION
が最初に実行されるというていで考えればよく、SQLの締めでは、COMMIT
かROLLBACK
を明示的に行うことができます。要は、オートコミットを解除しているのとおんなじことですね。
まとめ
これでオートコミットを外せました。