📜  sql server 杀死所有连接 - SQL (1)

📅  最后修改于: 2023-12-03 14:47:36.145000             🧑  作者: Mango

SQL Server: 杀死所有连接

在SQL Server中,你可以使用以下SQL查询来杀死所有的数据库连接:

-- 选择要关闭连接的数据库
USE master;

-- 创建一个存储过程来杀死所有连接
CREATE PROCEDURE KillAllConnections
AS
BEGIN
    SET NOCOUNT ON;

    -- 声明变量
    DECLARE @spid INT;
    DECLARE @sql NVARCHAR(255);

    -- 创建一个游标来获取所有活动的连接
    DECLARE connection_cursor CURSOR FOR
    SELECT spid
    FROM sys.sysprocesses
    WHERE dbid = DB_ID('YourDatabaseName');

    -- 打开游标
    OPEN connection_cursor;

    -- 循环遍历所有连接并杀死它们
    FETCH NEXT FROM connection_cursor INTO @spid;
    WHILE @@FETCH_STATUS = 0
    BEGIN
        -- 构建动态SQL语句来杀死连接
        SET @sql = N'KILL ' + CAST(@spid AS NVARCHAR(10));

        -- 执行动态SQL语句
        EXEC sp_executesql @sql;

        -- 继续下一个连接
        FETCH NEXT FROM connection_cursor INTO @spid;
    END;

    -- 关闭游标
    CLOSE connection_cursor;
    DEALLOCATE connection_cursor;
END;

使用以上代码,请将“YourDatabaseName”替换为你想要关闭连接的数据库名。

然后,你可以执行以下查询来杀死所有连接:

-- 使用存储过程来杀死所有连接
EXEC KillAllConnections;

请注意,执行此操作将终止正在运行的所有活动查询和事务。请在执行前谨慎操作。

以上是杀死所有连接的方法,你可以在SQL Server中使用它来关闭连接。