sql-server - tipo - tablas temporales sql server 2000
Obtener la estructura de la tabla temporal(como generar secuencia de comandos sql) y borrar la tabla de temp para la instancia actual (5)
Debe usar comillas alrededor del nombre de la tabla temporal y puede eliminar la tabla temporal directamente después de usar la drop table ...
select *
into #myTempTable -- creates a new temp table
from tMyTable -- some table in your database
exec tempdb..sp_help ''#myTempTable''
drop table #myTempTable
¿Cómo obtengo la estructura de la tabla temporal y luego borro la tabla temporal? ¿Hay un sp_helptext para tablas temporales? Finalmente, ¿es posible eliminar la tabla temporal en la misma sesión o ventana de consulta?
Ejemplo:
select *
into #myTempTable -- creates a new temp table
from tMyTable -- some table in your database
tempdb..sp_help #myTempTable
Necesitaba poder recrear una tabla temporal en un script, así que usé este código para generar las columnas de la declaración CREATE TABLE:
SELECT char(9) + ''['' + c.column_name + ''] '' + c.data_type
+ CASE WHEN c.data_type IN (''decimal'')
THEN isnull(''('' + convert(varchar, c.numeric_precision) + '', '' + convert(varchar, c.numeric_scale) + '')'', '''')
ELSE '''' END
+ CASE WHEN c.IS_NULLABLE = ''YES'' THEN '' NULL'' ELSE '''' END
+ '',''
From tempdb.INFORMATION_SCHEMA.COLUMNS c
WHERE TABLE_NAME LIKE ''#myTempTable%''
No probé todos los tipos de datos sql, pero esto funcionó para int, float, datetime, money y bit.
Además, ApexSQL Complete (gratis) tiene una característica agradable en la que puede exportar los resultados de la cuadrícula a una instrucción Insert Into
. Lo usé para cargar esta tabla temporal creada en mi script.
Siempre que sepa que no hay SP_HelpText para las tablas. Prueba esto:
Select * From tempdb.sys.columns Where object_id=OBJECT_ID(''tempdb.dbo.#myTempTable'');
exec sp_columns table_name;
ejemplo
empleados de exec sp_columns;
Select * From tempdb.INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME LIKE ''#yourtemp%''