以前、SQL Serverのテーブルに登録しているトリガーをSSMS(SQL Server Management Studio)でデバッグする方法をネットで探してやっていたのですが、最近なぜか見当たらず、忘れないように備忘録として自分で書いておく。
前提
- ストアドプロシージャがデバッグできるSSMSはバージョン17まで。18はストアドのデバッグができない。
方法
-
作ったストアドプロシージャを右クリック →「ストアドプロシージャの実行」を選択。
(プロシージャのスクリプト化 → スクリプトの実行 ではなぜかエラーになる。)
-
「プロシージャの実行」画面でOKをクリック。
ストアドのパラメータを設定していれば値を入力する。(以下の例では面倒なのでストアドにパラメータを設定していない。値を変えて何度も実行したい場合は、パラメータを設定しておいた方が便利。)
-
ステップ実行状態になるので、ストアドを呼んでいる行までステップ実行してステップイン(F11またはメニューのステップ実行ボタンクリック)
-
作成したストアドに入ってステップ実行状態になるので、トリガーが起動するSQL文までステップ実行してステップイン(F11またはメニューのステップ実行ボタンクリック)
-
トリガーに入ってステップ実行できる状態になる。後は目的に応じてデバッグ操作。ブレークポイントを置いておけば、次回からは途中の処理をスキップできる。
補足
-
ストアドプロシージャの作成はSSMS17でできるが、変更が以下のエラーでできない。オブジェクト操作等でできないことはSSMS18やVisualStudioで代用。
-
デバッグ実行時の実行やステップインのメニューボタンはちょっと離れたところに表示された。最初どこにあるのか気づかなかった。
-
Visual Studioでもできるかもしれないが、2022で僕はできなかった。デバッグ時になぜかステップインしてくれない。
以上