Bij mijn werkgever moet ik regelmatig updates uitvoeren van Dynamics NAV. Een van de vereisten is dan (soms) dat er niemand meer in de database zit. Je kunt dan proberen om de database in single user mode te zetten, maar vaak lukt dat niet. Daarom een manier gezocht (en gevonden) om snel alle verbindingen te verbreken.
Voer het onderstaande script uit via de SQL Server management Studio. Vervang de xxxx even door de database waar het om gaat...
declare @databasename varchar(100)
declare @query varchar(max)
set @query = ''
if db_id(@databasename) < 4
begin
print 'system database connection cannot be killed'
return
end
from master..sysprocesses where dbid=db_id(@databasename)
begin
print @query
exec(@query)
end
Op Azure: Voer onderstaande query uit op de database
DECLARE @kill varchar(8000) = '';
SELECT @kill = @kill + 'KILL ' + CONVERT(varchar(5), c.session_id) + ';'
FROM sys.dm_exec_connections AS c
JOIN sys.dm_exec_sessions AS s
ON c.session_id = s.session_id
WHERE c.session_id <> @@SPID
--WHERE status = 'sleeping'
ORDER BY c.connect_time ASC
EXEC(@kill)