viernes, 21 de marzo de 2014

SQL Server - Listar Nombres de Columnas de Tablas Temporales

De vez en cuando, tenemos que trabajar con tablas temporales, ya sea que estamos en medio de cursores, trabajando con los nuevos operadores PIVOT y UNPIVOT, etc. para insertar, recuperar o transformar datos.

Si tenemos que hacer nada más que consultas de los datos de la tabla temporal, y suponiendo que mi tabla temporal se llama "temptable", solo hay que hacer

SELECT * FROM [tempdb].[dbo].[temptable]



Ahora bien, hay veces que necesitamos listar los nombres de las columnas de nuestra tabla temporal. Si fuera una tabla de nuestra base de datos, llamada "MiTablita", eso lo podríamos saber haciendo:

SELECT COLUMN_NAME
FROM information_schema.columns
INNER JOIN information_schema.tables ON (information_schema.columns.TABLE_NAME = information_schema.tables.TABLE_NAME)
INNER JOIN sysobjects ON (information_schema.tables.TABLE_NAME = sysobjects.name)
WHERE sysobjects.xtype = 'u' AND information_schema.columns.TABLE_NAME = 'Tablita'



Pero si es una tabla temporal no la vamos a encontrar en "information_schema" sino en "tempdb.information_schema" así:

SELECT COLUMN_NAME
FROM tempdb.INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'temptable'



No hay comentarios.:

Publicar un comentario