1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SQL Server トリガーをデバッグする方法

Last updated at Posted at 2023-12-26

以前、SQL Serverのテーブルに登録しているトリガーをSSMS(SQL Server Management Studio)でデバッグする方法をネットで探してやっていたのですが、最近なぜか見当たらず、忘れないように備忘録として自分で書いておく。

前提

  • ストアドプロシージャがデバッグできるSSMSはバージョン17まで。18はストアドのデバッグができない。

方法

  1. ストアドプロシージャを新規作成する。
     中身はトリガーが起動するようなSQL文を書く。
    image.png

  2. 作ったストアドプロシージャを右クリック →「ストアドプロシージャの実行」を選択。
     (プロシージャのスクリプト化 → スクリプトの実行 ではなぜかエラーになる。)
     image.png

  3. 「プロシージャの実行」画面でOKをクリック。
     ストアドのパラメータを設定していれば値を入力する。(以下の例では面倒なのでストアドにパラメータを設定していない。値を変えて何度も実行したい場合は、パラメータを設定しておいた方が便利。)
    image.png

  4. エディタにストアド実行のスクリプトが開く。「デバッグ」をクリック。
     image.png

  5. ステップ実行状態になるので、ストアドを呼んでいる行までステップ実行してステップイン(F11またはメニューのステップ実行ボタンクリック)
     image.png

  6. 作成したストアドに入ってステップ実行状態になるので、トリガーが起動するSQL文までステップ実行してステップイン(F11またはメニューのステップ実行ボタンクリック)
    image.png

  7. トリガーに入ってステップ実行できる状態になる。後は目的に応じてデバッグ操作。ブレークポイントを置いておけば、次回からは途中の処理をスキップできる。
    image.png

補足

  1. ストアドプロシージャの作成はSSMS17でできるが、変更が以下のエラーでできない。オブジェクト操作等でできないことはSSMS18やVisualStudioで代用。
     image.png

  2. デバッグ実行時の実行やステップインのメニューボタンはちょっと離れたところに表示された。最初どこにあるのか気づかなかった。
     image.png

  3. Visual Studioでもできるかもしれないが、2022で僕はできなかった。デバッグ時になぜかステップインしてくれない。

以上

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?