Skip to content

Cursor Template

The below code is a basic template to handle running a cursor statement against each database on a server.

DECLARE @DBName NVARCHAR(50)

DECLARE db_cursor CURSOR FOR 
SELECT name 
FROM [master].[sys].[databases] 
WHERE name NOT IN ('master','model','msdb','tempdb') 

OPEN db_cursor  
FETCH NEXT FROM db_cursor INTO @DBName  

WHILE @@FETCH_STATUS = 0  
BEGIN  
	DECLARE @SQL NVARCHAR(MAX)
	SET @SQL = 
	'
		SELECT *
		FROM [+@DBName+].[dbo].[Table]
	'
	EXEC sp_executesql @SQL 

	FETCH NEXT FROM db_cursor INTO @DBName 
END 

CLOSE db_cursor  
DEALLOCATE db_cursor 
%d bloggers like this: