2009-11-06 14 views

Respuesta

15
select * into #temp_table from current_table_in_stored_procedure 

#temp_table - locally temp 
##temp_table - globally temp 

select top 0 * into #temp_table from current_table_in_stored_procedure to have empty table 
+0

Esto copiará los datos de current_table en un #temp_table, pero #temp_table no tendrán las mismas claves, la configuración de identidad, etc. . Aún así, esta es la forma aceptada de realizar esta tarea. –

+0

@David: la tabla temporal * heredará la configuración de identidad, pero no, ninguna de las claves ni la indexación. ¡Ojalá pudiera apagarlo! –

7

SELECT * INTO #t FROM table

si quieren que sea vacío:

SELECT * INTO #t FROM table WHERE 1 = 2

1

Alternativamente, usted puede script de la tabla existente y cambiar el nombre a la nombre de tabla temporal y agregue la tabla de creación s cript en la parte superior del resto de la secuencia de comandos que desea ejecutar. Generalmente hago esto si realmente es importante que la tabla temporal coincida exactamente con la estructura de la tabla real (por ejemplo, cuando estoy creando una tabla falsa llamada #inserted para usar al probar el código que pretendo poner en un desencadenador)

La mayoría de las veces, si seleccionas obtendrás lo que necesitas.

0

una expresión de tabla común o de mesa Las variables pueden también servidor con el propósito aparte de una tabla temporal

Cuestiones relacionadas