15 February 2013

Chiudere tutte le connessioni ad un DB

Ad esempio per forzare una RESTORE del DB.
USE master
GO

DECLARE @kill varchar(8000) ; SET @kill = ''

SELECT @kill = @kill + 'KILL ' + CONVERT(varchar(5), spid) + ';'
FROM master..sysprocesses
WHERE dbid IN 
  (
     db_id('databaseName')
   , db_id('anotherDataBase')
  )

IF @kill = ''
 PRINT 'No connection found.'
ELSE
 EXEC (@kill)   -- le parentesi servono!

Testato su SQL2005. Basato sullo script trovato qui.