Un sencillo script para armar queries dinámicamente según lo obtenido en una consulta previa. En este ejemplo lo hago con una sentencia para borrar tablas.

OJO: Cuando se necesita optimizar rendimiento y manejar grandes volúmenes de datos, no se recomienda los queries dinámicos

DECLARE @Sql NVARCHAR(500) DECLARE @Cursor CURSOR

SET @Cursor = CURSOR FAST_FORWARD FOR
--Query to select and build DROP TABLE sentence
SELECT 'DROP TABLE '+FLD AS FIELD FROM
(SELECT '['+TABLE_SCHEMA+'].['+TABLE_NAME+']' AS FLD
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE' AND
TABLE_SCHEMA <> 'dbo') AS TBL

OPEN

@Cursor FETCH NEXT FROM @Cursor INTO @Sql

PRINT 'THE FOLLOWING TABLES WERE DELETED:'
PRINT '---------------------------------'

WHILE
	(@@FETCH_STATUS = 0)
BEGIN
	Exec SP_EXECUTESQL @Sql
	PRINT '- ' + @Sql
FETCH NEXT FROM @Cursor INTO @Sql
END
CLOSE
@Cursor DEALLOCATE @Cursor

GO

Saludos,

[this post in english]