首页 > 数据库 >SQLServer数据库批量kill会话的脚本(慎用!)

SQLServer数据库批量kill会话的脚本(慎用!)

时间:2024-07-03 19:19:26浏览次数:13  
标签:curProcesses -- DBID SQLServer 会话 kill DATABASENAME DECLARE nFetchStatus

微软大佬提供的一个批量 kill会话的脚本,很凶很暴力,慎用慎用慎用!尤其是涉及大事务时。

請注意:如果資料庫還在正在 Recovery 階段無效,因為無法 Kill 系統 Session,必須等候 Recovery 完畢(或是重建交易紀錄檔案)。

/*
Function : Kill all SPID on specific database and Repair
Written by Ray Yen 2010/04/09
Modified by Ray Yen 2018/11/20
*/

DECLARE @DBID INT
DECLARE @DATABASENAME NVARCHAR(60)
SET @DATABASENAME =[Database_Name] --Please modify the database name 
Select Top 1 @DBID = DBID from sys.sysdatabases Where Name = @DATABASENAME
PRINT 'Database Name : ' + @DATABASENAME
PRINT 'Database ID : ' + LTRIM(STR(@DBID))
PRINT '---------------------------------------'

DECLARE @nKillProcess INT
DECLARE @nFetchStatus INT
DECLARE @sTemp NVARCHAR(255) 
DECLARE curProcesses CURSOR
LOCAL
FAST_FORWARD
READ_ONLY
FOR
SELECT spid
FROM
Master..sysprocesses
WHERE
dbid = @DBID

OPEN curProcesses

FETCH NEXT FROM curProcesses INTO --Gets the first process
@nKillProcess
SET @nFetchStatus = @@FETCH_STATUS

--Kill the processes
WHILE @nFetchStatus = 0
BEGIN
SET @sTemp ='KILL ' + CAST(@nKillProcess as varchar(5))
PRINT @sTemp
EXEC(@sTemp)
FETCH NEXT FROM curProcesses INTO --Gets the next process
@nKillProcess
SET @nFetchStatus = @@FETCH_STATUS
END
CLOSE curProcesses
DEALLOCATE curProcesses

 

标签:curProcesses,--,DBID,SQLServer,会话,kill,DATABASENAME,DECLARE,nFetchStatus
From: https://www.cnblogs.com/wang-xiaohui/p/18282414

相关文章

  • 掌握Mojolicious会话管理:构建安全、持久的Web应用
    掌握Mojolicious会话管理:构建安全、持久的Web应用Mojolicious是一个基于Perl的高性能、异步Web开发框架,它提供了一套完整的工具来构建现代Web应用。会话管理是Web开发中的一个关键组成部分,它允许应用识别和保持用户的登录状态。本文将深入探讨如何在Mojolicious中实现会话......
  • 查询分析清理oracle阻塞会话
    1.查询CMS用户当前系统活动的会话selectt.SID,t.SERIAL#,t.STATUS,t.LOGON_TIME,t.LAST_CALL_ET,t.PROGRAM,t.LOCKWAIT,t.BLOCKING_SESSION,t.BLOCKING_SESSION_STATUS,t.BLOCKING_INSTANCE,t.USERNAME,t.PROCESS,t.OSUSER,t.SERVER,t.OSUSER,t.MACHINE,t.TERMINAL,t.PROCESS......
  • 使用EF 连接 数据库 SQLserver、MySql 实现 CodeFirst
    1.新建项目,下载Nuget安装包创建项目需要注意几点,如果是基于.netframework的项目需要选择相应版本的EF,如果是跨平台则选择EFCore版本。我这里选择的是.netframework版本。红框里面是实现EFCodeFirst需要的包。对应的版本:EntityFramework6.3.0MySql.Data6.8......
  • SQLServer设置端口
    要在SQLServer中设置或更改端口号,可以通过SQLServer配置管理器进行配置。以下是具体步骤:打开SQLServer配置管理器:在Windows上,按Win+R打开“运行”对话框,输入SQLServerManager<version>.msc,例如SQLServerManager13.msc(适用于SQLServer2016)或SQLServe......
  • SqlServer数据库数据恢复
    故障服务器环境描述:一台故障服务器,因在正常运行中,意外断电,重启后发现SQLserver数据库的数据无法被读取。故障服务器分析检测:故障服务器进入系统发现是人为删除的,SQLserver数据库文件无法被读取,系统表被损坏,由于底层FileRecord被截断为0,无法找到文件开头,数据表结构也被损坏。......
  • 了解 .NET 中的会话管理
    在Web开发领域,跨多个请求维护状态是一个关键方面。HTTP的无状态特性要求开发人员实现持久保存用户数据的机制。这就是会话发挥作用的地方。在本文中,我们将探讨什么是会话、它们在.NET中的工作方式,并提供实际示例来说明它们的用法。什么是会话?会话是服务器端的信息存......
  • ENGL642 Research Skills Question
    ENGL642 ResearchSkillsAssignmentQuestionSemesterTwo2023-2024There is one assessed assignment for the module ENGL642 Research Skills. The assignment requiresyouto produce a research proposal (see section‘the research proposal’......
  • webAPI连接SQLserver,并快速建立数据模型
    首先,你需要有一个webAPI来作为Android应用和SQLserver数据库之间的中间件,创建该api在项目中导入三个NuGet包通过服务器资源管理器连接数据库,获取数据库连接的字符串 快速建立数据模型思路:通过数据库创建数据类:导入包=>打开程序包管理器控制台=>选择项目=>Scaffold-DbCont......
  • Spring MVC 获取三个域(request请求域,session 会话域,application 应用域)对象的方式
    1.SpringMVC获取三个域(request请求域,session会话域,application应用域)对象的方式@目录1.SpringMVC获取三个域(request请求域,session会话域,application应用域)对象的方式2.Servlet中的三个域对象3.准备工作3.1创建模块,添加依赖3.2添加web支持3.3编写web.xml文......
  • SQLServer游标
    一.游标的作用:定位到结果集中的某一行(结果集:在完成了数据库的操作之后出现的所有的结果的集合)二.游标分为三类1.静态游标(static):操作游标时即使数据发生变化,游标中的数据也不会发生变化2.动态游标(dynamic):操作游标时若数据发生变化,则游标中数据同样改变3.键集驱动游标(keyse......