82 votes

Le meilleur moyen de créer une table temporaire avec les mêmes colonnes et le même type qu'une table permanente

Je dois créer une table temporaire avec les mêmes colonnes et la saisir en tant que table permanente. Quelle est la meilleure façon de le faire? (La table permanente a plus de 100 colonnes)

c'est à dire

Habituellement, je crée une table comme celle-ci.

 DECLARE  #TT TABLE(              
  member_id INT,    
  reason varchar(1),    
  record_status varchar(1) ,    
  record_type varchar(1)    
 ) 

Mais y a-t-il un moyen de le faire sans mentionner les noms et le type de colonne, mais mentionner le nom d'une autre table avec les colonnes requises ?

157voto

nathan gonzalez Points 5866
select top 0 *
into #mytemptable
from myrealtable

10voto

gcbenison Points 4253

Ceci est une réponse spécifique à MySQL, je ne sais pas où cela fonctionne -

Vous pouvez créer une table vide ayant les mêmes définitions de colonnes avec :

 CREATE TEMPORARY TABLE temp_foo LIKE foo;

Et vous pouvez créer une copie remplie d'une table existante avec :

 CREATE TEMPORARY TABLE temp_foo SELECT * FROM foo;

Et les travaux suivants dans postgres ; Malheureusement, les différents SGBDR ne semblent pas très cohérents ici :

 CREATE TEMPORARY TABLE temp_foo AS SELECT * FROM foo;

8voto

Pranay Rana Points 69934

Le plus trié...

 select top 0 * into #temptable from mytable

Remarque : cela crée une copie vide de temp, mais cela ne crée pas de clé primaire

1voto

select * into #temptable from tablename where 1<>1

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X