ストアドのデバッグ


Microsoft SQL Server Management Stadioでストアドプロシージャのデバッグを行うことができる。
手順は以下の通り。



1.ストアドを実行するドライバを作成する
(デバッグしたいストアドの「ストアドプロシージャをスクリプト化」→「Execute」→「新しいクエリエディタウインドウ」)


2.メニューバーの「デバッグ」→「デバッグの開始」で1で作成したドライバに対しデバッグを開始する


3.F11キーの「ステップイン」で進めていくとストアドプロシージャの中までデバッグできる
(F10キーの「ステップオーバー」だと関数やストアドの中までデバッグしない)




ドライバのサンプル

USE [test_Db]
GO

DECLARE	@return_value int

EXEC	@return_value = [dbo].[sp_item_update]
		@Pa_syain_cd = N'010'

SELECT	'Return Value' = @return_value

GO


デバッグ対象のストアドのサンプル

Alter PROCEDURE sp_item_update @Pa_syain_cd char(10)

AS

BEGIN

  --変数の定義
  DECLARE @WK_syain_cd char(10)

  --カーソルの定義
  DECLARE curItem CURSOR FOR
    SELECT syain_cd
    FROM   buy_Item
    WHERE  syain_cd > @Pa_syain_cd 

  --メイン処理
  OPEN curItem 

  FETCH NEXT FROM curItem
  INTO @WK_syain_cd

  --カーソルの終端までループ
  WHILE @@FETCH_STATUS = 0
  BEGIN

    UPDATE  buy_Item
    SET     syain_cd = RTRIM(@WK_syain_cd)
    WHERE   syain_cd = @WK_syain_cd
    
    FETCH NEXT FROM curItem
    INTO @WK_syain_cd

  END


  --カーソル終了
  CLOSE curItem

END

動作確認環境:SQL Server 2008 Express