Forcibly close the connection to the specified database
When I restore the database, is it often that the database is being used and cannot be restored?
Even if all the programs are turned off, can the database still be restored?
Run the following code!
/*
Disconnect all users
*/
UseMaster
Go
IfExists(Select*FromDBO. sysobjects
WhereID=Object_id (n' [DBO]. [p_killspid] ')AndObjectproperty (ID,
N 'isprocedure ')=1)
DropProcedure[DBO]. [p_killspid]
Go
CreateProcP_killspid
@ DbnameVarchar (200) -- Name of the database for which the process is to be disabled
As
Declare@ SQLNvarchar (500)
Declare@ SpidNvarchar (20)
Declare# TBCursorFor
SelectSpid = cast (spidAsVarchar (20 ))FromMaster .. sysprocesses
WhereDbid = db_id (@ dbname)
Open# TB
FetchNextFrom# TBInto@ Spid
While@ Fetch_status = 0
Begin
Exec ('Kill'+ @ Spid)
FetchNextFrom# TBInto@ Spid
End
Close# TB
Deallocate# TB
Go
-- Usage
ExecP_killspid'Database name'