SqlServer教程

sqlserver 杀死数据库所有线程

本文主要是介绍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 杀死数据库所有线程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!