web-dev-qa-db-fra.com

Comment puis-je copier des enregistrements de données entre deux instances d'une base de données SQLServer

J'ai besoin de copier certains enregistrements de notre serveur de test SQLServer 2005 vers notre serveur en direct. Il s'agit d'une table de recherche plate, donc pas de clés étrangères ou autre intégrité référentielle à craindre.

Je pourrais saisir à nouveau les enregistrements sur le serveur en direct, mais c'est fastidieux. Je pourrais exporter les enregistrements du serveur de test et les données de table dans leur intégralité dans un script SQL et l'exécuter, mais je ne veux pas écraser les enregistrements présents sur le système en direct, mais seulement les ajouter.

Comment puis-je sélectionner uniquement les enregistrements que je veux et les transférer ou non sur le serveur en direct? Nous n'avons pas Sharepoint, ce qui, je crois, me permettrait de les copier directement entre les deux instances.

30
Jaymie Thomas

Si votre serveur SQL de production et votre serveur de test SQL peuvent parler, vous pouvez simplement le faire avec une instruction d'insertion SQL.

exécutez d'abord ce qui suit sur votre serveur de test:

Execute sp_addlinkedserver PRODUCTION_SERVER_NAME

Ensuite, créez simplement l'instruction d'insertion:

INSERT INTO [PRODUCTION_SERVER_NAME].DATABASE_NAME.dbo.TABLE_NAME   (Names_of_Columns_to_be_inserted)
SELECT Names_of_Columns_to_be_inserted
FROM TABLE_NAME
44
Kwirk

J'utilise SQL Server Management Studio et je fais une tâche d'exportation en cliquant avec le bouton droit sur la base de données et en accédant à Tâche> Exporter. Je pense que cela fonctionne à travers les serveurs ainsi que les bases de données mais je ne suis pas sûr.

11
Joe Phillips

Un package SSIS serait le mieux adapté pour effectuer le transfert, la configuration prendrait littéralement quelques secondes!

3
Mitchel Sellers