Comment puis-je créer deux tables temporaires avec la même structure sans écrire deux fois?

Comment puis-je créer deux tables temporaires avec la même structure sans écrire deux fois?

Quelque chose comme ca:

DECLARE @TEST_TABLE1, @TEST_TABLE2 TABLE ( FIELD1 INT, FIELD2 INT ) 

et non:

 DECLARE @TEST_TABLE1 TABLE ( FIELD1 INT, FIELD2 INT ) DECLARE @TEST_TABLE2 TABLE ( FIELD1 INT, FIELD2 INT ) 

Ce ne sont pas des "tables temporaires", une table temporaire est CREATE TABLE #TempTable(x int)

pour que cela fonctionne pour de vraies tables, essayez:

 CREATE TABLE #TempTable(x int) insert into #TempTable values(5) --test data to show no data copyd to new table select * into #tempTable2 from #TempTable where 1=2 select * from #TempTable select * from #TempTable2 

Ce sont des variables de table (@tableVariable) et vous devez déclarer chaque variable, il n'y a aucun moyen de contourner cela.

Le seul moyen non-standard que je puisse penser que cela puisse fonctionner est d'écrire directement dans le file sys.tables, mais vous devrez quand même faire deux insertions, mais vous faites les tables en même time.

Ce n'est peut-être pas ce que vous voulez, mais à court d'utiliser une procédure stockée, et de faire un appel de votre application, et deux sur la database, je ne peux pas penser à une autre solution.

Créez la première table temporaire, puis select une seconde table temporaire:

– Créer une première table temporaire

CREATE TABLE # TEST_TABLE1 (FIELD1 int, FIELD2 int)

– Sélectionnez dans la deuxième table temporaire

SELECT * INTO # TEST_TABLE2 DE # TEST_TABLE1

– Vétérinaire des deux tables temporaires

SELECT * FROM # TEST_TABLE1

SELECT * FROM # TEST_TABLE2