• 关闭SQL Server DB上的所有连接


          当我们在删除一个DB的时候,如果这个DB当前有其它应用程序正在使用,删除就会失败,如果是在SSMS中执行删除操作,可以将"Close existing connections"选项勾上再执行删除操作,如果是通过脚本来删除,就需要如下操作了:
          1.先找到连接该DB的所有会话ID,
          2.根据会话ID将所有会话强行关闭。
    这里分享一段小脚本,可以将指定DB的所有会话一次性全部Kill掉:

    USE Master
    GO

    DECLARE @DBName nvarchar(200)
    SET @DBName = 'DB_Name' -- SET DB Name

    IF OBJECT_ID('tempdb..#SessionList') IS NOT NULL
    DROP TABLE #SessionList

    CREATE TABLE #SessionList
    (
    spid bigint,
    ecid int,
    status nvarchar(100),
    loginname nvarchar(100),
    hostname nvarchar(200),
    blk int,
    dbname nvarchar(200),
    cmd nvarchar(200),
    request_id int
    )

    INSERT INTO #SessionList
    EXEC sp_who

    DECLARE @Count int
    DECLARE @i int
    SET @Count = (SELECT COUNT(*) FROM #SessionList WHERE dbname = @DBName)
    SET @i = 0

    WHILE @i < @Count
    BEGIN
    DECLARE @SQLString nvarchar(max)
    DECLARE @Spid bigint
    SET @Spid = (SELECT TOP (1) spid FROM #SessionList WHERE dbname = @DBName ORDER BY spid ASC)
    SET @SQLString = 'kill '+ Convert(nvarchar(30),@Spid)

    PRINT @SQLString
    EXECUTE (@SQLString)
    DELETE #SessionList WHERE spid = @Spid

    SET @i = @i + 1
    END

    DROP TABLE #SessionList



  • 相关阅读:
    typeOf操作符及数据类型
    图片轮播 js
    百度地图API学习
    jq 使页脚固定在底部
    js 动态自动添加 删除
    background-size 兼容ie8以下浏览器的方法
    opacity css3 ie8以下兼容方法
    ie 6、7/position: absolute bug解决方法
    IE 下的rgba背景透明
    2017腾讯实习生春招前端初面总结
  • 原文地址:https://www.cnblogs.com/Continue/p/2350502.html
Copyright © 2020-2023  润新知