zoukankan      html  css  js  c++  java
  • SQL Server 中断开连接到指定数据库的所有连接

    常用的情形是在部署测试数据库时需要通过SQL代码自动重新创建数据库,在删除的时候往往会发生错误,错误信息一般会指出目前有用户连接到这个数据库上,因此不能删除.

     

    实现的方式是通过查询指定数据库中活跃的 SPID, 然后一一删除.

     

    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    
    USE MASTER
    GO
    
    IF OBJECT_ID('dbo.USP_KillSPID','P')IS NOT NULL
    DROP PROCEDURE dbo.USP_KillSPID
    GO
    
    CREATE PROCEDURE dbo.USP_KillSPID
    @DatabaseName VARCHAR(255)
    AS
    
    DECLARE @SPID NVARCHAR(255)
    DECLARE curDBLogin CURSOR FOR
    SELECT CAST(SPID AS VARCHAR(255)) AS SPID
    FROM MASTER..sysprocesses
    WHERE dbid = DB_ID(@DatabaseName)
    
    OPEN curDBLogin
    FETCH NEXT FROM curDBLogin INTO @SPID
    
    WHILE @@FETCH_STATUS = 0
       BEGIN
          IF @SPID <> @@SPID
              EXEC('KILL '+ @SPID )
          FETCH NEXT FROM curDBLogin INTO @SPID
       END
    
    CLOSE curDBLogin
    DEALLOCATE curDBLogin
    GO
    
    -- Kill logins of database
    EXEC dbo.USP_KillSPID 'CommonControlDB' 
    
    -- Drop itself
    DROP PROCEDURE dbo.USP_KillSPID

     

     

  • 相关阅读:
    jq封装的tab切换
    jquery高级函数
    jquery一些基本函数
    javascript中的事件冒泡和事件捕获
    prototype数组方法的实现
    瀑布流布局
    flex弹性布局
    js鼠标点击版tab切换
    js拖拽效果
    js根据className获取元素封装
  • 原文地址:https://www.cnblogs.com/biwork/p/3242016.html
Copyright © 2011-2022 走看看