Я знаю, что это старый пост, но на всякий случай кто-то сталкивался с этим решением и предпочел бы не курсорный метод, который не выполняется, но возвращает сценарии.
Я только что взял предыдущее решение и преобразовал его в выборку, основанную на результатах.
DECLARE @SQL VARCHAR(8000)
SELECT @SQL=COALESCE(@SQL,'')+'ALTER DATABASE '+name+ N' SET OFFLINE WITH NO_WAIT;
'
FROM sys.databases
WHERE owner_sid<>0x01
PRINT @SQL