zoukankan      html  css  js  c++  java
  • 清除某个数据库的所有数据库连接的存储过程 [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 + '”的连接清除操作完毕'
  • 相关阅读:
    CUDA和cudnn的环境变量设置问题
    zsh-Ubuntu更实用终端
    应用安全
    应用安全
    应用安全
    操作系统
    应用安全
    应用安全
    操作系统
    密码学
  • 原文地址:https://www.cnblogs.com/RobotTech/p/945520.html
Copyright © 2011-2022 走看看