DISCONNECT ステートメントを使用する
SQL Server で既存の接続をクローズする方法
SP_PROCINFO
システムプロシージャは、現在の接続に関する情報を提供します。 このプロシージャの出力には、SPID
列が含まれています。 この列には、各接続の SPID (SQL Server プロセス ID) が表示されます。
既存の接続を閉じるには、まずその接続の SPID を特定する必要があります。
USE [master];
EXEC SP_PROCINFO;
このクエリを実行すると、現在のインスタンスに接続されているすべてのプロセスのリストが表示されます。 各行には、SPID
列、USER
列、STATUS
列などの情報が含まれます。
接続を閉じるには、KILL
コマンドを使用します。 以下に例を示します。
USE [master];
KILL 50;
上記の例では、SPID が 50 の接続が閉じられます。
DISCONNECT
ステートメントを使用して、現在の接続を明示的に閉じることもできます。
DISCONNECT;
このステートメントを実行すると、現在の接続が閉じられ、データベースとの接続が切断されます。
CLOSE ステートメントを使用する
特定の接続ハンドルを閉じるには、CLOSE
ステートメントを使用できます。
CLOSE @connection_handle;
上記の例では、@connection_handle
変数に格納されている接続ハンドルが閉じられます。
注意事項
- すべての接続を閉じる前に、アプリケーションで開いているすべてのカーソルとストアドプロシージャをクローズする必要があります。 そうしないと、エラーが発生する可能性があります。
KILL
コマンドは、予期せぬ結果をもたらす可能性があるため、注意して使用する必要があります。 接続を閉じる前に、その接続で実行中のすべての操作を完了していることを確認してください。
SP_PROCINFO を使用する
USE [master];
-- 現在のインスタンスに接続されているすべてのプロセスのリストを取得する
EXEC SP_PROCINFO;
-- 閉じる接続の SPID を特定する
DECLARE @spid INT;
SET @spid = 50; -- 閉じる接続の SPID
-- 接続を閉じる
KILL @spid;
USE [master];
-- 現在の接続を閉じる
DISCONNECT;
USE [master];
-- 接続ハンドルを作成する
DECLARE @connection_handle INT;
EXEC sp_addlinkedserver @server = N'MyServer', @srvalias = N'MyAlias';
SET @connection_handle = @@SERVERHANDLE;
-- 接続を閉じる
CLOSE @connection_handle;
- 上記のコードはあくまで例であり、状況に応じて変更する必要があります。
SQL Server で既存の接続を閉じるその他の方法
SQL Server Management Studio (SSMS) を使用する
SSMS を使用して、アクティブな接続を一覧表示し、個別にまたはまとめて閉じることもできます。
- アクティブな接続を表示するには:
- SSMS で、接続している SQL Server インスタンスに接続します。
- オブジェクト エクスプローラー で、サーバー ノードを展開します。
- セッション ノードを右クリックし、アクティブなセッションの表示 を選択します。
- 接続を閉じるには:
- アクティブなセッションの表示 ダイアログ ボックスで、閉じる接続を選択します。
- 終了 ボタンをクリックします。
SQL Server Profiler は、SQL Server で実行されるイベントを監視および追跡するためのツールです。 Profiler を使用して、アクティブな接続を一覧表示し、個別にまたはまとめて閉じることもできます。
- アクティブな接続を表示するには:
- SQL Server Profiler を起動します。
- イベントの選択 ワークシートで、接続 イベントを選択します。
- 接続を閉じるには:
- 右クリック メニューから 終了 を選択します。
以下の Transact-SQL
コマンドを使用して、アクティブな接続を一覧表示および閉じることもできます。
- アクティブな接続を表示するには:
USE [master];
EXEC sp_who;
- 接続を閉じるには:
USE [master];
KILL spid;
上記の例では、spid
変数に格納されている接続 ID が閉じられます。
sql sql-server