删除指定数据库的链接进程,用于分离数据库

ALTER PROC [dbo].[SYS_DB_KillConnections] 
(
   @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
posted @ 2019-12-09 11:28  梦想(胡大利)  阅读(166)  评论(0编辑  收藏  举报