Transact-SQL デバッガの構成および起動
Transact-SQL デバッガは、データベース エンジン クエリ エディタ ウィンドウを開いた後に起動できます。次に、デバッガを停止するまで、Transact-SQL コードをデバッグ モードで実行できます。デバッガの実行方法は、要件に応じてオプションを設定することによってカスタマイズできます。
Transact-SQL デバッガの構成
Transact-SQL デバッガには、サーバー側のコンポーネントとクライアント側のコンポーネントの両方が含まれています。サーバー側のデバッガ コンポーネントは、SQL Server 2008データベース エンジンのインスタンスと共にインストールされます。クライアント側のコンポーネントは、SQL Server 2008 クライアント側ツールをインストールするとインストールされます。
SQL Server Management Studio が SQL Server データベース エンジンのインスタンスと同じコンピュータ上で実行されている場合は、Transact-SQL デバッガを実行するための構成要件はありません。ただし、SQL Server Management Studio がデータベース エンジンのインスタンスと異なるコンピュータ上で実行されている場合に Transact-SQL デバッガを実行するには、両方のコンピュータ上で [Windows ファイアウォール] コントロール パネル アプリケーションを使用して、プログラムおよびポート例外を有効にする必要があります。
データベース エンジンのインスタンスが実行されているコンピュータ上で、Windows ファイアウォールに次の情報を指定します。
TCP ポート 135 を例外の一覧に追加します。
プログラム sqlservr.exe を例外の一覧に追加します。既定では、sqlservr.exe は、C:\Program Files\Microsoft SQL Server\MSSQL10.InstanceName\MSSQL\Binn にインストールされます (InstanceName は、既定のインスタンスの場合は MSSQLSERVER、名前付きインスタンスの場合はインスタンス名です)。
ドメインのポリシーにより IPSec 経由でネットワーク通信を行う必要がある場合は、UDP ポート 4500 と UDP ポート 500 も例外の一覧に追加する必要があります。
SQL Server Management Studio が実行されているコンピュータ上で、Windows ファイアウォールに次の情報を指定します。
TCP ポート 135 を例外の一覧に追加します。
プログラム ssms.exe (SQL Server Management Studio) を例外の一覧に追加します。既定では、ssms.exe は、C:\Program Files\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE にインストールされます。
デバッガの起動と停止
Transact-SQL デバッガを起動するための要件は次のとおりです。
SQL Server Management Studio が、sysadmin 固定サーバー ロールのメンバである Windows アカウントで実行されている必要があります。
データベース エンジン クエリ エディタ ウィンドウが、sysadmin 固定サーバー ロールのメンバである Windows 認証または SQL Server 認証ログインを使用して接続されている必要があります。
データベース エンジン クエリ エディタ ウィンドウが、SQL Server 2008データベース エンジンのインスタンスに接続されている必要があります。クエリ エディタ ウィンドウがシングル ユーザー モードのインスタンスに接続されているときは、デバッガを実行できません。
Transact-SQL コードのデバッグは、次の理由により、実稼働サーバーではなくテスト サーバーで行うことをお勧めします。
デバッグは高度な権限を必要とする操作です。このため、SQL Server でデバッグを行うことができるのは、sysadmin 固定サーバー ロールのメンバのみです。
いくつかの Transact-SQL ステートメントの処理を調査するときに、デバッグ セッションが長時間に及ぶことがあります。セッションによって取得されたロック (たとえば更新ロック) が、セッションが終了するかトランザクションがコミットまたはロールバックされるまで、長時間保持される場合があります。
Transact-SQL デバッガを起動すると、クエリ エディタ ウィンドウがデバッグ モードになります。クエリ エディタ ウィンドウがデバッグ モードになると、デバッガは最初のコード行で一時停止します。この段階で、コードをステップ実行することも、特定の Transact-SQL ステートメントで実行を一時停止することもできます。デバッガ ウィンドウを使用して現在の実行状態を表示することもできます。デバッガは、[クエリ] ツール バーの [デバッグ] ボタンをクリックするか、または [デバッグ] メニューの [デバッグ開始] をクリックすることで開始できます。
クエリ エディタ ウィンドウは、クエリ エディタ ウィンドウ内の最後のステートメントが完了するか、またはデバッグ モードを自分で終了するまで、デバッグ モードに保たれます。デバッグ モードとステートメントの実行を停止するには、次のいずれかの操作を行います。
[デバッグ] メニューの [デバッグの停止] をクリックする。
[デバッグ] ツール バーの [デバッグの停止] ボタンをクリックする。
[クエリ] メニューの [クエリ実行のキャンセル] をクリックする。
[クエリ] ツール バーの [クエリ実行のキャンセル] ボタンをクリックする。
また、[デバッグ] メニューの [すべてデタッチ] をクリックすると、デバッグ モードを停止し、残りの Transact-SQL ステートメントを実行できます。
デバッガの制御
次のメニュー コマンド、ツール バー、およびショートカットを使用することで、Transact-SQL デバッガの動作を制御できます。
[デバッグ] メニューおよび [デバッグ] ツール バー。[デバッグ] メニューと [デバッグ] ツール バーは、開いているクエリ エディタ ウィンドウにフォーカスが設定されるまで、どちらも非アクティブ状態です。現在のプロジェクトが閉じられるまで、アクティブ状態に保たれます。
デバッガのキーボード ショートカット。
クエリ エディタのショートカット メニュー。ショートカット メニューは、クエリ エディタ ウィンドウ内の行を右クリックすると表示されます。クエリ エディタ ウィンドウがデバッグ モードのとき、ショートカット メニューには、選択された行または文字列に適用できるデバッガ コマンドが表示されます。
デバッガによって開かれたウィンドウ (たとえば [ウォッチ] ウィンドウや [ブレークポイント] ウィンドウ) のメニュー項目およびコンテキスト コマンド。
デバッガのメニュー コマンド、ツール バー ボタン、およびキーボード ショートカットを次の表に示します。
[デバッグ] メニューのコマンド |
エディタのショートカット コマンド |
ツール バー ボタン |
キーボード ショートカット |
動作 |
---|---|---|---|---|
[ウィンドウ]/[ブレークポイント] |
使用できません |
[ブレークポイント] |
Ctrl + Alt + B |
[ブレークポイント] ウィンドウを表示します。このウィンドウでは、ブレークポイントの表示と管理を行うことができます。 |
[ウィンドウ]/[ウォッチ]/[ウォッチ 1] |
使用できません |
[ブレークポイント]/[ウォッチ]/[ウォッチ 1] |
Ctrl + Alt + W、1 |
[ウォッチ 1] ウィンドウを表示します。 |
[ウィンドウ]/[ウォッチ]/[ウォッチ 2] |
使用できません |
[ブレークポイント]/[ウォッチ]/[ウォッチ 2] |
Ctrl + Alt + W、2 |
[ウォッチ 2] ウィンドウを表示します。 |
[ウィンドウ]/[ウォッチ]/[ウォッチ 3] |
使用できません |
[ブレークポイント]/[ウォッチ]/[ウォッチ 3] |
Ctrl + Alt + W、3 |
[ウォッチ 3] ウィンドウを表示します。 |
[ウィンドウ]/[ウォッチ]/[ウォッチ 4] |
使用できません |
[ブレークポイント]/[ウォッチ]/[ウォッチ 4] |
Ctrl + Alt + W、4 |
[ウォッチ 4] ウィンドウを表示します。 |
[ウィンドウ]/[ローカル] |
使用できません |
[ブレークポイント]/[ローカル] |
Ctrl + Alt + V、L |
[ローカル] ウィンドウを表示します。 |
[ウィンドウ]/[呼び出し履歴] |
使用できません |
[ブレークポイント]/[呼び出し履歴] |
Ctrl + Alt + C |
[呼び出し履歴] ウィンドウを表示します。 |
[ウィンドウ]/[スレッド] |
使用できません |
[ブレークポイント]/[スレッド] |
Ctrl + Alt + H |
[スレッド] ウィンドウを表示します。 |
[続行] |
使用できません |
[続行] |
Alt + F5 |
次のブレークポイントまで実行します。[続行] は、デバッグ モードのクエリ エディタ ウィンドウにフォーカスを移さないとアクティブになりません。 |
[デバッグ開始] |
使用できません |
[デバッグ開始] |
Alt + F5 |
クエリ エディタ ウィンドウをデバッグ モードにし、最初のブレークポイントまで実行します。デバッグ モードのクエリ エディタ ウィンドウにフォーカスを移した場合、[デバッグ開始] は [続行] に切り替わります。 |
[すべて中断] |
使用できません |
[すべて中断] |
Ctrl + Alt + Break |
この機能は、Transact-SQL デバッガでは使用できません。 |
[デバッグの停止] |
使用できません |
[デバッグの停止] |
Shift + F5 |
クエリ エディタ ウィンドウをデバッグ モードから通常モードに切り替えます。 |
[すべてデタッチ] |
使用できません |
使用できません |
使用できません |
デバッグ モードを終了しますが、クエリ エディタ ウィンドウ内の残りのステートメントを実行します。 |
[ステップ イン] |
使用できません |
[ステップ イン] |
F11 |
次のステートメントを実行します。次のステートメントがストアド プロシージャ、トリガ、または関数を実行する場合は、新しいクエリ エディタ ウィンドウをデバッグ モードで開きます。 |
[ステップ オーバー] |
使用できません |
[ステップ オーバー] |
F10 |
関数、ストアド プロシージャ、またはトリガがデバッグされない点を除き、[ステップ イン] と同じです。 |
[ステップ アウト] |
使用できません |
[ステップ アウト] |
Shift + F11 |
ブレークポイントで一時停止することなく、トリガ、関数、またはストアド プロシージャ内の残りのコードを実行します。モジュールを呼び出したコードに制御が返されると、通常のデバッグ モードが再開されます。 |
使用できません |
[カーソルまで実行] |
使用できません |
Ctrl + F10 |
ブレークポイントで停止することなく、前回の停止位置から現在のカーソル位置までのすべてのコードを実行します。 |
[クイック ウォッチ] |
[クイック ウォッチ] |
使用できません |
Ctrl + Alt + Q |
[クイック ウォッチ] ウィンドウを表示します。 |
[ブレークポイントの設定/解除] |
[ブレークポイント]/[ブレークポイントの挿入] |
使用できません |
F9 |
現在の Transact-SQL ステートメントまたは選択されているステートメントにブレークポイントを配置します。 |
使用できません |
[ブレークポイント]/[ブレークポイントの削除] |
使用できません |
使用できません |
選択されている行からブレークポイントを削除します。 |
使用できません |
[ブレークポイント]/[ブレークポイントの無効化] |
使用できません |
使用できません |
選択されている行のブレークポイントを無効にします。ブレークポイントはコード行に設定されたままですが、再び有効にするまで実行は停止されません。 |
使用できません |
[ブレークポイント]/[ブレークポイントの有効化] |
使用できません |
使用できません |
選択されている行のブレークポイントを有効にします。 |
[すべてのブレークポイントの削除] |
使用できません |
使用できません |
Ctrl + Shift + F9 |
すべてのブレークポイントを削除します。 |
[すべてのブレークポイントを無効にする] |
使用できません |
使用できません |
使用できません |
すべてのブレークポイントを無効にします。 |
使用できません |
[ウォッチ式の追加] |
使用できません |
使用できません |
選択されている式を [ウォッチ] ウィンドウに追加します。 |