Create a stored procedure under the master database as follows:
Createproc Killspid (@dbnamevarchar( -))
as
begin
Declare@sqlnvarchar( -)
Declare@spidint
Set@sql='declare getspid cursor for select spid from sysprocesses where dbid in (select dbid from sysdatabases where Name='+@dbname+')'
exec(@sql)
Open Getspid
Fetch Next from Getspid into@spid
while @ @fetch_status<>-1
begin
exec('Kill'+@spid)
Fetch Next from Getspid into@spid
End
Close Getspid
deallocateGetspid
End
--usage
Use master
exec Killspid " "Database name" "
Single quotation mark nesting
With three single quotes, the outermost single quotation marks denote Vchar, the second single quote is escaped, and the innermost single quotation mark is the single quotation mark in the string;declare @dbname nvarchar
Set @dbname = ' ZCC '--The resulting variable is ' zcc ',Set @dbname = ' ZCC '--The resulting variable is ZCC
"No exclusive access" workaround appears for restoring the database (stored procedure SQL Server that kills database connections)