本文主要是介绍sqlserver 杀死数据库所有线程,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
--不能是你要操作的数据库,不然会提示错误
USE [master]
GO
--存在同名的删除掉
IF EXISTS ( SELECT *
FROM dbo.sysobjects
WHERE id = OBJECT_ID(N'[dbo].[p_killspid]')
AND OBJECTPROPERTY(id, N'IsProcedure') = 1 )
DROP PROCEDURE [dbo].[p_killspid_by_Libby];
GO
--创建存储过程
CREATE PROC [p_killspid_by_Libby] @dbname VARCHAR(200) --要关闭进程的数据库名
AS
DECLARE @sql NVARCHAR(500);
DECLARE @spid NVARCHAR(20);
DECLARE #tb CURSOR
FOR
SELECT spid = CAST(spid AS VARCHAR(20))
FROM master..sysprocesses
WHERE dbid = DB_ID(@dbname);
OPEN #tb;
FETCH NEXT FROM #tb INTO @spid;
WHILE @@fetch_status = 0
BEGIN
EXEC('kill '+@spid);
FETCH NEXT FROM #tb INTO @spid;
END;
CLOSE #tb;
DEALLOCATE #tb;
GO
--用法
EXEC [p_killspid_by_Libby] 你要操作的数据库名称;
--删除存储过程
DROP PROCEDURE [dbo].[p_killspid_by_Libby];
这篇关于sqlserver 杀死数据库所有线程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!