SQL清除某个数据库的所有数据库连接

USE master --清除连接请注意是否还use着此数据库
GO 
CREATE PROC L_spClearDbConnections
    @DbName    VARCHAR(30)
AS
--清除某个数据库的所有数据库连接
--RickyLin 2007-11-1
DECLARE @SPID    INT
DECLARE @SqlForClear    NVARCHAR(100)

DECLARE curID CURSOR FORWARD_ONLY READ_ONLY FOR (
    SELECT SPID
    FROM Master.dbo.SysProcesses
    WHERE DB_Name(DBID) = @DbName)
OPEN curID
FETCH NEXT FROM curID INTO @SPID
WHILE @@Fetch_Status = 0
BEGIN
    SET @SqlForClear = N'KILL ' + Cast(@SPID AS NVARCHAR(10))
    EXEC sp_ExecuteSql @SqlForClear
    IF @@Error = 0
        PRINT '已清除连接:' + Cast(@SPID AS VARCHAR(10))
    FETCH NEXT FROM curID INTO @SPID
END
CLOSE curID
DEALLOCATE curID
PRINT '对数据库“' + @DbName + '”的连接清除操作完毕'

exec L_spClearDbConnections @DbName=''


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值