Dieses Blog durchsuchen

Donnerstag, 2. Juli 2015

Loop through databases

Manchmal ist es notwendig ein bestimmtes Skript gegen alle bzw. einige Datenbanken eines Servers abzusetzen. Dies ist mit dem unten angeführten Skript leicht realisierbar. 
Die zu selektierenden Datenbanken können mit einer WHERE-Einschränkung auf die master.sys.sysdatabases noch gefiltert werden. 

/*
Dieses Script loopt durch alle vorhandenen Datenbanken auf einem Server.
*/

DECLARE @DB_Name varchar(100) 
DECLARE @Command nvarchar(200)
DECLARE database_cursor CURSOR FOR SELECT name FROM master.sys.sysdatabases 
--hier mit WHERE-Clause wenn gewünscht einschränken

OPEN database_cursor

FETCH NEXT FROM database_cursor INTO @DB_Name

WHILE @@FETCH_STATUS = 0 
BEGIN 
     SELECT @Command = 'SELECT ' + '''' + @DB_Name + ''''  
--Query, welche gegen jede Datenbank abgesetzt wird
     EXEC sp_executesql @Command

     FETCH NEXT FROM database_cursor INTO @DB_Name 
END

CLOSE database_cursor 
DEALLOCATE database_cursor

Keine Kommentare:

Kommentar veröffentlichen