强制关闭与数据库的所有其他连接的SQL命令是什么
强制关闭与数据库的所有其他连接的SQL命令是什么。 这是针对SQL Server 2008的单向使用 可以使用KILL,但也要防止重新连接。使用以下语句关闭单个连接: 终止正在运行的用户进程 基于会话ID(SQL中的SPID 服务器2000及更早版本) 无需进一步说明,这里有一个我们多年来断断续续使用的存储过程,使用强制关闭与数据库的所有其他连接的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
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