Удаление БД SQL Server
Есть данный скрипт, для удаления БД
use master
go
declare @dbnames nvarchar(max)
declare @statement nvarchar(max)
set @dbnames = ''
set @statement = ''
select @dbnames = @dbnames + ',[' + name + ']' from sys.databases
where name
NOT IN ('test', 'master', 'model', 'msdb', 'tempdb')
AND name NOT LIKE '%AdventureWorks%' -- Database to keep
AND name NOT LIKE '%DW%' -- Data warehouse database
AND name NOT LIKE '%ReportServer%' -- Report server database
if len(@dbnames) = 0
begin
print 'no databases to drop'
end
else
begin
set @statement = 'drop database ' + substring(@dbnames, 2, len(@dbnames))
print @statement
exec sp_executesql @statement
end
go
При запуске скрипт работает, но если есть активное соединение (кто-то работает в момент запуска скрипта) , то скрипт выдает ошибку
"Невозможно удалить базу данных "DBDB", так как она используется в данный момент."
Помогите исправить скрипт, чтобы можно было удалить БД, даже если есть активные соединения
Источник: Stack Overflow на русском