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];

上一篇:MSSQL数据库分析


下一篇:sqlserver夸服务器夸数据库查询