web-dev-qa-db-fra.com

Comment sélectionner * INTO [table temporaire] sans déclarer de table?

je veux utiliser l'instruction select sur une table et insérer le résultat dans une variable de table temporaire, mais je ne déclare pas la table temporaire avec des colonnes et je veux l'utiliser comme ceci:

Declare #tmp table;

SELECT * INTO #tmp FROM myTable

cela veut déclarer des colonnes et des types de données pour #tmp

aidez-moi, s'il vous plaît

33
hamed aj

Vous pouvez le faire simplement sans la commande DECLARE - qui n'est de toute façon pas valide pour les tables #temp, uniquement les variables @table. Avez-vous essayé juste ce qui suit sans essayer de définir d'abord #tmp:

SELECT * INTO #tmp FROM myTable;
43
Aaron Bertrand

Avec des données:

select *
into #tmp
from myTable

Pas de données:

select *
into #tmp
from myTable
where 0=1

BTW, vous pouvez pas le faire avec des variables de table.

select *
into @tmp
from myTable

Les variables de table doivent être déclarées avec les colonnes.

33
Mikael Eriksson