87 votes

Exportation des données de table d'un serveur SQL vers un autre

J'ai deux serveurs SQL (tous deux en version 2005).

Je veux migrer plusieurs tables de l'une à l'autre.

J'ai essayé :

  • Sur le serveur source, j'ai fait un clic droit sur la base de données, sélectionné Tasks/Generate scripts . Le problème est que sous Table/View options il n'y a pas Script data option.

  • Ensuite, j'ai utilisé Script Table As/Create script pour générer des fichiers SQL afin de créer les tables sur mon serveur de destination. Mais j'ai toujours besoin de toutes les données.

Puis j'ai essayé d'utiliser :

SELECT * 
INTO [destination server].[destination database].[dbo].[destination table] 
FROM [source server].[source database].[dbo].[source table]

Mais je reçois l'erreur :

L'objet contient plus que le nombre maximum de préfixes. Le maximum est de 2.

Quelqu'un peut-il m'indiquer la bonne solution à mon problème ?

80voto

marc_s Points 321990

Essayez ça :

  1. créer votre table sur le serveur cible en utilisant vos scripts à partir de l'application Script Table As / Create Script étape

  2. sur le serveur cible, vous pouvez alors émettre une instruction T-SQL :

    INSERT INTO dbo.YourTableNameHere
       SELECT *
       FROM [SourceServer].[SourceDatabase].dbo.YourTableNameHere

Cela devrait fonctionner parfaitement.

64voto

Konstantin Points 36

Juste pour montrer une autre option (pour SQL Server 2008 et plus) :

  1. cliquez avec le bouton droit de la souris sur la base de données -> sélectionnez 'Tasks' -> sélectionnez 'Generate scripts'.
  2. Sélectionnez les objets spécifiques de la base de données que vous souhaitez copier. Disons une ou plusieurs tables. Cliquez sur Suivant
  3. Cliquez sur Avancé et faites défiler la liste jusqu'à 'Types de données à script' et choisissez 'Schéma et données'. Cliquez sur OK
  4. Choisissez l'endroit où enregistrer le script généré et continuez en cliquant sur "Suivant".

11voto

Jānis Points 1331

Il y a une option de table script dans Tâches/Générer script ! Je l'ai aussi manqué au début ! Mais vous pouvez générer l'insertion de script là (très belle fonctionnalité, mais dans un endroit très peu intuitif).

Lorsque vous arrivez à l'étape "Définir les options de script", allez à l'onglet "Avancé".

Étapes décrites aquí (les photos peuvent comprendre, mais j'écris en letton là-bas).

10voto

Damien_The_Unbeliever Points 102139

Essayez d'utiliser le serveur SQL Assistant d'importation et d'exportation (sous Tâches -> Exporter des données).

Il propose de créer les tables dans la base de données de destination. Alors que, comme vous l'avez vu, l'assistant de script ne peut créer que la structure des tables.

10voto

40-Love Points 1333

Si vous n'avez pas la permission de lier des serveurs, voici les étapes pour importer une table d'un serveur à un autre en utilisant l'assistant d'importation/exportation de Sql Server :

  • Faites un clic droit sur la base de données source à partir de laquelle vous souhaitez effectuer la copie.
  • Sélectionnez Tâches - Exportation de données.
  • Sélectionnez Sql Server Native Client dans la source de données.
  • Sélectionnez votre type d'authentification (authentification Sql Server ou Windows).
  • Sélectionnez la base de données source.
  • Ensuite, choisissez la destination : Sql Server Native Client
  • Saisissez le nom de votre serveur (le serveur sur lequel vous souhaitez copier la table).
  • Sélectionnez votre type d'authentification (authentification Sql Server ou Windows).
  • Sélectionnez la base de données de destination.
  • Sélectionnez Copier les données.
  • Sélectionnez votre table dans la liste.
  • Cliquez sur Suivant, sélectionnez Exécuter immédiatement ou, en option, vous pouvez également enregistrer le paquet dans un fichier ou sur le serveur Sql si vous souhaitez l'exécuter plus tard.
  • Finition

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X