日期:2014-05-19  浏览次数:20657 次

有没有清除数据库连接的T-SQL语句???谢谢
有时使用T-SQL语句分离数据库,但是不成功,原因是有连接在使用。请问有没有清除数据库连接的T-SQL语句???

------解决方案--------------------
alter database [数据库名] set offline with rollback after 10
------解决方案--------------------
--楼上是脱机
--假设要清除数据库abc的连接
declare @spid int
declare @strsql varchar(256)
select @spid=min(spid) from master.dbo.sysprocesses
while @spid is not null
begin
set @strsql= 'kill ' + cast(@spid as varchar)
print(@strsql)
select @spid=min(spid) from master.dbo.sysprocesses
where spid> @spid and db_name(dbid) = 'abc ' and dbid <> 0
end
go
------解决方案--------------------
噢,像这样

USE Master
SET NOCOUNT ON
Declare @spID varchar(100)
Declare @SQL varchar(5000)
Select @spID= ' ',@SQL= ' '

Create table #tmp (spid int,ecid int,status varchar(50),loginame varchar(50),hostname varchar(100),blk int,dbname varchar(50),cmd varchar(400))

Insert into #tmp
Exec sp_who

Select @SQL=@SQL+ ' Kill '+Cast(spid as varchar) From #tmp where dbname= 'Northwind '
exec (@SQL)
Drop table #tmp