【发布时间】:2016-11-10 16:09:36
【问题描述】:
我试过下面的代码来杀死Master数据库以外的SQL连接:
DECLARE @kill varchar(8000) = '';
SELECT @kill = @kill + 'kill ' + CONVERT(varchar(5), session_id) + ';'
FROM sys.dm_exec_sessions
WHERE database_id = db_id('MyDB')
EXEC(@kill);
这段代码对我来说很好用。但是当我运行下面的查询以查看更多活动连接时,我发现我的 MASTER 数据库有 21 个活动连接。
SELECT
DB_NAME(dbid) as DBName,
COUNT(dbid) as NumberOfConnections,
loginame as LoginName
FROM
sys.sysprocesses
WHERE
dbid > 0
GROUP BY
dbid, loginame
虽然我想关闭与 MASTER 数据库的所有活动连接,但它失败了,错误消息是:“无法使用 KILL 杀死你自己的进程。”
请告诉我,我怎样才能从 'sa' 帐户持有的 MASTER 数据库中杀死所有 21 个活动连接?
非常感谢您的支持。
/保罗
【问题讨论】:
-
您是否从不同的数据库运行代码?此外,请确保没有打开指向
master数据库的活动窗口。 -
嗨,埃里克,谢谢,是的,我做到了,然后错误消息是“只能杀死用户进程”。现在,我正在研究“sa”是如何建立这些连接的,并且它在 23 左右并且始终处于活动状态。
标签: sql sql-server connection master