要想在SQL Server中断开所有连接到某一数据库的连接,可以使用以下步骤:
- 首先,必须获得需要被断开连接的数据库的ID:
USE master;
SELECT database_id, name FROM sys.databases WHERE name = 'DBName';
这里需要将 DBName
替换为你需要断开连接的数据库的名称。通过执行以上SQL查询语句,会返回类似以下结果:
database_id name
----------- -------------
8 DBName
database_id
是你需要的数据库的ID。
- 使用上一步中获得的数据库ID,执行以下操作,KILL 所有连接到该数据库的进程:
USE master;
DECLARE @kill varchar(8000) = '';
SELECT @kill = @kill + 'kill ' + CONVERT(varchar(5), session_id) + ';'
FROM sys.dm_exec_sessions
WHERE database_id = 8 /*将8替换为你要断开的数据库的ID*/
EXEC(@kill);
这里需要将 8
替换为你需要断开连接的数据库的ID。执行以上SQL查询语句,将会断开所有连接到该数据库的连接。
示例1:
假设我需要断开连接到名为 TestDB
的数据库的所有连接,可以先执行以下查询语句获取该数据库的ID:
USE master;
SELECT database_id, name FROM sys.databases WHERE name = 'TestDB';
返回结果类似以下内容:
database_id name
----------- -------------
13 TestDB
获取到了 TestDB
数据库的ID为 13
,现在可以执行以下代码来断开该数据库的所有连接:
USE master;
DECLARE @kill varchar(8000) = '';
SELECT @kill = @kill + 'kill ' + CONVERT(varchar(5), session_id) + ';'
FROM sys.dm_exec_sessions
WHERE database_id = 13 /*将13替换为你要断开的数据库的ID*/
EXEC(@kill);
以上代码可以将所有连接到 TestDB
数据库的连接都断开。
示例2:
假设我需要断开连接到名为 Sales
的数据库的所有连接,可以先执行以下查询语句获取该数据库的ID:
USE master;
SELECT database_id, name FROM sys.databases WHERE name = 'Sales';
返回结果类似以下内容:
database_id name
----------- -------------
5 Sales
获取到了 Sales
数据库的ID为 5
,现在可以执行以下代码来断开该数据库的所有连接:
USE master;
DECLARE @kill varchar(8000) = '';
SELECT @kill = @kill + 'kill ' + CONVERT(varchar(5), session_id) + ';'
FROM sys.dm_exec_sessions
WHERE database_id = 5 /*将5替换为你要断开的数据库的ID*/
EXEC(@kill);
以上代码可以将所有连接到 Sales
数据库的连接都断开。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:sqlserver下Kill 所有连接到某一数据库的连接 - Python技术站