J'essaie d'insérer des données d'une de mes tables existantes dans une autre table existante.
Est-il possible d'insérer des données dans n'importe quelle table existante en utilisant la requête select * into
. Je pense que cela peut être fait en utilisant l'union, mais dans ce cas, je dois enregistrer toutes les données de ma table existante dans une table temporaire, puis supprimer cette table et Enfin, appliquez l'union pour insérer tous les enregistrements dans la même table.
par exemple.
select * into #tblExisting from tblExisting
drop table tblExisting
select * into tblExisting from #tblExisting union tblActualData
Ici, tblExisting est la table dans laquelle je veux réellement stocker toutes les données TblActualData est la table à partir de laquelle les données doivent être ajoutées à tblExisting.
Est-ce la bonne méthode. Avons-nous une autre alternative?
Tu devrais essayer
INSERT INTO ExistingTable (Columns,..)
SELECT Columns,...
FROM OtherTable
Regardez INSERT
Non, vous ne pouvez pas utiliser SELECT INTO
pour insérer des données dans une table existante.
La documentation le dit très clairement:
SELECT… INTO crée un nouvelle table dans le groupe de fichiers par défaut et y insère les lignes résultantes de la requête.
Vous voulez généralement éviter d'utiliser SELECT INTO
en production car cela vous donne très peu de contrôle sur la création de la table et peut entraîner toutes sortes de problèmes de verrouillage et autres problèmes de performances. Vous devez créer des schémas explicitement et utiliser INSERT
- même pour les tables temporaires.
@Ryan Chase Pouvez-vous le faire en sélectionnant toutes les colonnes avec *? Oui!
INSERT INTO yourtable2
SELECT * FROM yourtable1
Mise à jour de CTE? http://www.sqlservercentral.com/Forums/Topic629743-338-1.aspx