2010-12-14 67 views
4

Si les tableaux A et B ont des structures identiques (sauf le champ ID). Dans A son autoassigné, mais dans B, il attend la valeur d'un insert.Insérer dans avec un sous-select * ne fonctionnant pas

Comment faire un INSERT INTO A (sélectionnez * de B).

Quel est le SQL le plus rapide et le plus flexible pouvant être exécuté dans un proc stocké?

Répondre

9

Spécifiez les colonnes explicitement:

INSERT INTO TableA (col1, col2) 
SELECT col1, col2 FROM TableB 
+5

Select * en général ne devrait pas être utilisé dans le code de production. Dans ce cas, il ne peut pas être utilisé. – HLGEM

+0

Ok, merci. J'ai besoin d'embaucher une secrétaire pour taper tous les noms de colonnes :) –

+0

@HLGEM, J'ai vu beaucoup de select * dans les systèmes de production. Je ne vois aucune raison d'exclure son utilisation dans la production. Accordé je ne suis pas un DBA, mais * semble obtenir tous les domaines, je ne sais pas pourquoi cela serait désapprouvé dans les environnements de production. –