Necesitábamos insertar datos en una tabla extrayéndolos de otras tablas. Todas las tablas con la misma estructura. Para evitar escribir muchas veces la misma instrucción con las diferentes tablas creamos el siguiente script Transact-SQL en Sql Server 2000:
USE base_de_datos
DECLARE cursor_de_tablas CURSOR
FOR
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE ‘tablas%’
OPEN cursor_de_tablas
DECLARE @nombre_tabla sysname
FETCH NEXT FROM cursor_de_tablas INTO @nombre_tabla
WHILE (@@FETCH_STATUS <> -1)
BEGIN
IF (@@FETCH_STATUS <> -2)
BEGIN
SELECT @nombre_tabla = RTRIM(@nombre_tabla)
EXEC (‘INSERT INTO tabla_destino SELECT * FROM ‘ + @nombre_tabla )
END
FETCH NEXT FROM cursor_de_tablas INTO @nombre_tabla
END
CLOSE cursor_de_tablas
DEALLOCATE cursor_de_tablas
Con este script se insertarán los datos de todas las tablas que empiezan con el nombre tablas en la base de datos llamada base_de_datos a la tabla tabla_destino en la misma base de datos.
Espero y les sirva.