53 votes

SQL Server 2005 - Exporter une table par programme (exécuter un fichier .sql pour la reconstruire)

J'ai une base de données avec une table Clients qui contient des données.

J'ai une autre base de données au bureau où tout est identique, mais ma table Clients est vide.

Comment puis-je créer un fichier sql dans SQL Server 2005 (T-SQL) qui prend tout ce qui se trouve dans la table Clients de la première base de données, crée un fichier, disons, buildcustomers.sql, je zippe ce fichier, le copie sur le réseau, l'exécute dans mon SQL Server et voilà ! ma table Clients est pleine

Comment puis-je faire de même pour une base de données entière ?

76voto

The Matt Points 4339

Cette fonctionnalité est déjà intégrée à Sql Server Management Studio 2008.

Il suffit de télécharger le procès et n'installer que les outils clients (qui ne devraient pas expirer). Utilisez Management Studio 2008 pour vous connecter à votre base de données 2005 (il est rétrocompatible).

  1. Cliquez à droite sur votre base de données
  2. Choisissez Tâches > Générer des scripts
  3. Appuyez sur Next, sélectionnez à nouveau votre base de données
  4. Sur l'écran 'Choisir les options de script', il y a une option appelée script Données qui générera des instructions d'insertion SQL pour toutes vos données.

(Remarque : pour SQL Server Management Studio 2008 R2, l'option s'appelle "Types de données à script" et est la dernière de la section Général. Les choix sont "données uniquement", "schéma et données", et "schéma uniquement").

alt textalt text

26voto

Unsliced Points 5800

Utilisez bcp (à partir de la ligne de commande) vers un fichier en réseau, puis le restaurer.

par exemple

bcp "SELECT * FROM CustomerTable" queryout "c:\temp\CustomerTable.bcp" 
     -N -S SOURCESERVERNAME -T 

bcp TargetDatabaseTable in "c:\temp\CustomerTable.bcp" -N -S TARGETSERVERNAME -T 
  • -N utiliser des types natifs
  • -T utiliser la connexion de confiance
  • -S ServerName

Très rapide et facile à intégrer dans un code. (J'ai construit un système de sauvegarde (restauration) de base de données autour de cette même commande.

22voto

Milica Medic Points 1248

Vous pouvez consulter l'article suivant pour voir comment vous pouvez le faire en utilisant les outils natifs du serveur SQL et les outils tiers : Techniques de copie en bloc et d'importation et d'exportation en bloc de SQL Server

Disclaimer : Je travaille pour ApexSQL en tant qu'ingénieur support.

J'espère que cela vous aidera

1voto

Bryan Roth Points 3592

Vous pouvez toujours exporter les données de la table Clients vers un fichier Excel et importer ces données dans votre table Clients.

Pour importer/exporter des données :

  1. Cliquez à droite sur la base de données
  2. Ir a Tâches
  3. Ir a Importer des données o Données d'exportation
  4. Changez la source de données en Microsoft Excel
  5. Suivez l'assistant

0voto

Nordin Points 569

Si les deux bases de données résident dans la même instance de SQL Server, c'est-à-dire qu'elles utilisent la même connexion, ce SQL peut être utile :

INSERT INTO [DestinationDB].[schema].[table] ([column])
SELECT [column] FROM [OriginDB].[schema].[table]
GO

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