この記事では、MS SQL Serverデータベースがすでに接続されているウィンドウを閉じるには、MS SQL Server Management Studioを使用を参照していない近くの接続について話しました。
したがって、いくつかの接続を閉じることができない、例えば、JavaのJDBCまたは他のクライアントによって生成されたデータベース接続MS SSMSは閉じることができません。
データベースクエリは、接続(コネクション)を指定しているもの1
SELECT * FROM [ マスター]。[ DBO ]。[ SYSPROCESSES ] WHERE [ DBID ] 、IN ( SELECT [ DBID ] FROM [ マスター]。[ DBO ]。[ sysdatabasesの] NAME = ' テスト' - - "テスト"君データベースクエリに名前を付けます )
2.道を示すために、データベース接続、パケットの統計情報の数のすべてのためのデータベースシステム全体を検索します。
選択 DB_NAME(DBIDを)として 、[ データベース名] 、 カウントしない(DBIDを)として 、[ 接続なし] 、 loginameのように [ ログイン名] から sys.sysprocesses DBID > 0 グループによって DBID、loginameに
3.指定されたデータベースへの接続を閉じるには
設定 NOCOUNT に 宣言 @databasenameの VARCHAR(100 ) 宣言 @queryの VARCHAR(最大) に設定 @query = '' 設定 @databasename = ' テスト' - 「テスト」为数据库的名字 場合 DB_ID(@databasename)< 4で 始まる 印刷 ' システムデータベース接続がkilleedすることができない' 戻り 端 セレクト @query = 合体を(@query、' ')+ ' 殺す' + 変換(VARCHAR、SPID)+ ' 。' から master..sysprocesses DBID = DB_ID(@databasename )場合LEN(@queryが)> 0 開始印刷@queryのExecの(@query ) 端