Просто наткнулся на это и придумал небольшое изменение, чтобы разрешить немедленное выполнение без курсоров:
DECLARE @SQL NVARCHAR(MAX) = ''
SELECT @SQL = @SQL
+ 'ALTER DATABASE [' + [name] + '] SET SINGLE_USER WITH ROLLBACK IMMEDIATE; '
+ 'DROP DATABASE [' + [name] + ']; '
FROM sys.databases
WHERE [name] like 'temp_%' AND create_date < DATEADD(day,-7,GETDATE())
-- display statements
SELECT @SQL
-- execute (uncomment)
--EXEC sp_executesql @SQL
Выше приведено удаление любых баз данных, начиная с "temp_"
и старше 7 дней, но это можетбыть очевидно приспособленным к любой ситуации.
ОПАСНОСТЬ: Запутайте ваш запрос, удалите некоторые или все ваши базы данных.Я оставил комментарий EXEC
закомментированным только для того, чтобы никто не делал это посредством копирования / вставки.