如下方式可关掉所有在使用当前数据库的连接。 use master go create proc killspid (@dbname varchar(20)) as begin declare @sql nvarchar(500),@temp varchar(1000) declare @spid int set @sql='declare getspid cursor for select spid from sysprocesses where dbid=db_id('''+@dbname+''')' exec (@sql) open getspid fetch next from getspid into @spid while @@fetch_status < >-1 begin set @temp='kill '+rtrim(@spid) exec(@temp) fetch next from getspid into @spid end close getspid deallocate getspid end --用法 use master exec killspid '数据库名'
在vb中如何以排他方式呢?
cn.open "Provider=SQLOLEDB.1;Password='a';Persist Security Info=True;User ID=sa;Initial Catalog=master;Data Source=server"
2: 要保证其它人也没有在使用。
use master
go
create proc killspid (@dbname varchar(20))
as
begin
declare @sql nvarchar(500),@temp varchar(1000)
declare @spid int
set @sql='declare getspid cursor for
select spid from sysprocesses where dbid=db_id('''+@dbname+''')'
exec (@sql)
open getspid
fetch next from getspid into @spid
while @@fetch_status < >-1
begin
set @temp='kill '+rtrim(@spid)
exec(@temp)
fetch next from getspid into @spid
end
close getspid
deallocate getspid
end --用法
use master
exec killspid '数据库名'
控制面板-》管理工具-》服务-》停止SQL SERVER服务再启动SQL SERVER服务,试试!