When we use Code When I restore or delete a database, I often encounter a denial of operation due to a database connection. For this reason, I specifically wrote a stored procedure to clear all the database links of a database.
The Code is as follows: Create Proc L_spcleardbconnections
@ Dbname Varchar ( 30 )
As
-- Clear all database connections of a Database
-- Rickylin 2007-11-1
Declare @ Spid Int
Declare @ Sqlforclear Nvarchar ( 100 )
Declare Curid Cursor Forward_only read_only For (
Select Spid
From Master. DBO. sysprocesses
Where Db_name (Dbid) = @ Dbname )
Open Curid
Fetch Next From Curid Into @ Spid
While @ Fetch_status = 0
Begin
Set @ Sqlforclear = N ' Kill ' + Cast ( @ Spid As Nvarchar ( 10 ))
Exec Sp_executesql @ Sqlforclear
If @ Error = 0
Print ' The connection has been cleared: ' + Cast ( @ Spid As Varchar ( 10 ))
Fetch Next From Curid Into @ Spid
End
Close Curid
Deallocate Curid
Print ' For Database" ' + @ Dbname + ' "The connection is cleared. '