Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
强制关闭与数据库的所有其他连接的SQL命令是什么_Sql_Sql Server_Sql Server 2008 - Fatal编程技术网

强制关闭与数据库的所有其他连接的SQL命令是什么

强制关闭与数据库的所有其他连接的SQL命令是什么,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,强制关闭与数据库的所有其他连接的SQL命令是什么。 这是针对SQL Server 2008的单向使用 可以使用KILL,但也要防止重新连接。使用以下语句关闭单个连接: 终止正在运行的用户进程 基于会话ID(SQL中的SPID 服务器2000及更早版本) 无需进一步说明,这里有一个我们多年来断断续续使用的存储过程,使用kill关闭所有连接。我相信有一种更好的/非光标的方法可以做到这一点 CREATE PROCEDURE kill_database_users @arg_dbname sysname

强制关闭与数据库的所有其他连接的SQL命令是什么。 这是针对SQL Server 2008的

单向使用

可以使用KILL,但也要防止重新连接。

使用以下语句关闭单个连接:

终止正在运行的用户进程 基于会话ID(SQL中的SPID 服务器2000及更早版本)

无需进一步说明,这里有一个我们多年来断断续续使用的存储过程,使用
kill
关闭所有连接。我相信有一种更好的/非光标的方法可以做到这一点

CREATE PROCEDURE kill_database_users @arg_dbname sysname
AS

declare @a_spid smallint
declare @msg    varchar(255)
declare @a_dbid int

select
    @a_dbid = sdb.dbid
from    master..sysdatabases sdb
where   sdb.name = @arg_dbname

declare db_users insensitive cursor for
select
    sp.spid
from    master..sysprocesses sp
where   sp.dbid = @a_dbid

open db_users

fetch next from db_users into @a_spid
while @@fetch_status = 0
    begin
    select @msg = 'kill '+convert(char(5),@a_spid)
    print @msg
    execute (@msg)
    fetch next from db_users into @a_spid
    end

close db_users
deallocate db_users
CREATE PROCEDURE kill_database_users @arg_dbname sysname
AS

declare @a_spid smallint
declare @msg    varchar(255)
declare @a_dbid int

select
    @a_dbid = sdb.dbid
from    master..sysdatabases sdb
where   sdb.name = @arg_dbname

declare db_users insensitive cursor for
select
    sp.spid
from    master..sysprocesses sp
where   sp.dbid = @a_dbid

open db_users

fetch next from db_users into @a_spid
while @@fetch_status = 0
    begin
    select @msg = 'kill '+convert(char(5),@a_spid)
    print @msg
    execute (@msg)
    fetch next from db_users into @a_spid
    end

close db_users
deallocate db_users