2009-11-06 8 views

Répondre

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

Cela copiera les données de current_table dans un #temp_table, mais #temp_table ne posséderont pas les mêmes clés, les paramètres d'identité, etc. Pourtant, c'est la façon acceptée d'effectuer cette tâche. –

+0

@David: la table temporaire * va hériter des paramètres d'identité, mais non, aucune des clés ou de l'indexation. J'aimerais pouvoir l'éteindre! –

7

SELECT * INTO #t FROM table

si vous voulez qu'il soit vide:

SELECT * INTO #t FROM table WHERE 1 = 2

1

vous pouvez également le script de la table existante et changer le nom du nom de la table temporaire et ajoutez la table de création s cript en haut du reste du script que vous voulez exécuter. Je le fais généralement s'il est vraiment important que la table temporaire corresponde exactement à la structure de la table réelle (par exemple lorsque je crée une fausse table appelée #inserted à utiliser pour tester le code que j'ai l'intention de placer dans un trigger.)

La plupart du temps si la sélection dans vous obtiendrez ce dont vous avez besoin.

0

Une expression de table commune ou une table Les variables peuvent également serveur dans le but en dehors d'une table Temp

Questions connexes