[MSSQL]如何在restore database時, 將相關的connection刪除

有關資料庫的討論, 都可以在這發表哦~~
回覆文章
頭像
tim
文章: 1380
註冊時間: 2008年 11月 26日, 00:49

[MSSQL]如何在restore database時, 將相關的connection刪除

文章 tim »

一般我們在 restore database 時, 需要將在該 database 中的所有在使用該 database 的 connection 刪除, 以期能進行 restore database 的程序.

由於 4個 system database 的 id <= 4, 所以僅需取出 id > 4 的, 程式如下,

代碼: 選擇全部

     
    declare @spid int, @dbid int, @cmd nvarchar(200) 
    declare c_processes cursor  for 
      select spid, dbid from sysprocesses where dbid >4 
    open c_processes 
     
    fetch next from c_processes into @spid, @dbid 
    while @@fetch_status=0 
    begin 
      --print @spid 
      set @cmd = 'kill '+convert(nvarchar, @spid) 
      --print @cmd 
      exec sp_executesql @cmd 
      fetch next from c_processes into @spid, @dbid 
     
    end 
     
    close c_processes 
    deallocate c_processes 
多多留言, 整理文章, 把經驗累積下來.....
回覆文章