Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

importer des données d'une table à une autre table

Dans SQL Server 2008, vous pouvez créer un script pour votre table Goo.Goo dans le studio SQL Server Mgmt et lui dire de créer également un script pour insérer toutes les données en utilisant T-SQL INSERT déclarations. Accédez à l'Explorateur d'objets, cliquez avec le bouton droit sur la base de données, sélectionnez "Tâches > Générer des scripts", sélectionnez la table pour laquelle vous souhaitez générer les instructions d'insertion de données et assurez-vous d'utiliser cette option ici :

Ceux-ci pourraient ensuite être exécutés sur l'autre serveur pour insérer le contenu de la table. Dans ce cas, cependant, vous devrez gérer vous-même l'insertion d'éventuelles lignes existantes.

D'autre part, si les deux serveurs sont sur le même réseau, vous pouvez simplement utiliser la fonctionnalité "Serveur lié" et lier le serveur source au serveur cible, puis utiliser l'instruction SQL Server 2008 MERGE pour importer toutes les données de la source table du serveur dans le serveur cible.

Dans l'Explorateur d'objets, allez dans "Objets serveur", puis "Serveurs liés", faites un clic droit et "Ajouter un nouveau serveur lié" pour établir une connexion entre les deux serveurs :

Une fois les serveurs liés, une simple instruction MERGE (nouveauté de SQL Server 2008) vous permettra de fusionner les données de ces deux tables :

MERGE 
  INTO Goo.Goo as Target
  USING Foo.Foo.dbo.Foo as Source
  ON Source.ID = Target.ID
WHEN NOT MATCHED THEN
  INSERT (field1, field2, field3)
  VALUES (source.field1, source.field2, source.field3)  
WHEN MATCHED THEN
  -- do nothing
;

En savoir plus sur la nouvelle instruction MERGE ici :

ou dans la documentation en ligne de SQL Server 2008.

Marc