• 清除某个数据库的所有数据库连接的存储过程 [ZT]


    在我们利用代码还原或者删除数据库的时候,经常碰到因为还存在数据库连接而拒绝操作的情况,我为此特意写了一个存储过程用来清除某个数据库的所有数据库链接。
    代码如下:
    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 + '”的连接清除操作完毕'
  • 相关阅读:
    Java基础之:OOP——继承
    Java基础之:OOP——封装
    使用requireJs进行模块化开发
    git bash 常用操作文件命令行
    requireJs使用
    常用网站
    使用requireJS
    使用echarts水球图
    jquery对象和DOM对象的区别和转换
    "abc123 ,def456",反转字母,其他位置不变
  • 原文地址:https://www.cnblogs.com/RobotTech/p/945520.html
Copyright © 2020-2023  润新知