Cursor to Take All SQL User DBs Off-Line

CREATE PROCEDURE SP_TakeOfflineAllDatabase AS

BEGIN

DECLARE @db sysname, @q varchar(max);

DECLARE cur_db CURSOR FOR

SELECT name FROM sys.databases WHERE owner_sid <> 0x01;

OPEN cur_db;

WHILE 1=1

BEGIN

FETCH NEXT FROM cur_db INTO @db;

IF @@FETCH_STATUS <> 0

BREAK;

SET @q = N’ALTER DATABASE [‘ + @db
+
N’] SET OFFLINE WITH NO_WAIT’;

EXEC(@q);

END;

CLOSE cur_db;

DEALLOCATE cur_db;

END;

Leave a Reply

Your email address will not be published. Required fields are marked *