web-dev-qa-db-fra.com

Sauvegarde au niveau de la table

Comment effectuer une sauvegarde au niveau de la table (vidage) dans MS SQL Server 2005/2008?

89
user82431

Vous ne pouvez pas utiliser la commande BACKUP DATABASE pour sauvegarder une seule table, à moins bien sûr que la table en question soit allouée à sa propre FILEGROUP.

Comme vous l'avez suggéré, exportez les données de la table dans un fichier CSV. Maintenant, pour obtenir la définition de votre table, vous pouvez "Script" le script CREATE TABLE.

Vous pouvez le faire dans SQL Server Management Studio, en:

clic droit sur Base de données> Tâches> Générer un script 

Vous pouvez ensuite sélectionner la table que vous souhaitez utiliser comme script et choisir d'inclure tous les objets associés, tels que les contraintes et les index.

pour obtenir la DATA avec seulement la schema, vous devez choisir Advanced dans l'onglet des options de script, puis dans la section GENERAL, définissez le Types of data to script sélectionnez Schema and Data

J'espère que cela vous aide, mais n'hésitez pas à me contacter directement si vous avez besoin d'aide supplémentaire.

86
John Sansom

J'utilise l'utilitaire de copie en bloc pour réaliser des sauvegardes au niveau des tables

exporter:

bcp.exe "select * from [MyDatabase].dbo.Customer " queryout "Customer.bcp" -N -S localhost -T -E

importer:

bcp.exe [MyDatabase].dbo.Customer in "Customer.bcp" -N -S localhost -T -E -b 10000

comme vous pouvez le constater, vous pouvez exporter en fonction de n'importe quelle requête, ce qui vous permet même d'effectuer des sauvegardes incrémentielles. De plus, il est scriptable par opposition aux autres méthodes mentionnées ici qui utilisent SSMS.

54
kenwarner

Voici les étapes dont vous avez besoin. Step5 est important si vous voulez les données. L'étape 2 est l'endroit où vous pouvez sélectionner des tables individuelles.

La version de EDIT stack n'est pas très lisible ... voici une image en taille réelle http://i.imgur.com/y6ZCL.jpg

Here are the steps from John Sansom's answer

44
Alex C

Vous pouvez exécuter la requête ci-dessous pour effectuer une sauvegarde de la table existante afin de créer une nouvelle table avec la structure existante de l'ancienne table avec les données.

select * into newtablename from oldtablename

Pour copier uniquement la structure de la table, utilisez la requête ci-dessous.

select * into newtablename from oldtablename where 1 = 2
19
Haripriya

C'est similaire à la solution de qntmfred , mais en utilisant un vidage de table direct. Cette option est légèrement plus rapide (voir Documents BCP ):

exporter:

bcp "[MyDatabase].dbo.Customer " out "Customer.bcp" -N -S localhost -T -E

importer:

bcp [MyDatabase].dbo.Customer in "Customer.bcp" -N -S localhost -T -E -b 10000
6
Diego

Si vous recherchez quelque chose comme la variable DUMP de MySQL, bonne nouvelle: SQL Server 2008 Management Studio a ajouté cette possibilité. 

Dans SSMS, cliquez avec le bouton droit sur la base de données en question et sélectionnez Tasks> Generate Scripts. Ensuite, dans la 2ème page de l'assistant d'options, assurez-vous de sélectionnez également le script data }, et cela générera un fichier DUMP pour vous.

4

Créez un nouveau groupe de fichiers, placez cette table dessus et sauvegardez ce groupe de fichiers uniquement.

3
Konstantin Tarkus

Je ne sais pas si cela va correspondre au problème décrit ici. J'ai dû prendre une sauvegarde incrémentielle d'une table! (Seules les nouvelles données insérées doivent être copiées). J'avais l'habitude de concevoir un paquet DTS où.

  1. Je récupère de nouveaux enregistrements (sur la base d'une colonne "statut") et transfère les données à la destination. (Via 'Transformer Data Task') 

  2. Ensuite, je viens de mettre à jour la colonne "statut". (Via 'Execute SQL Task')

Je devais corriger le «flux de travail» correctement.

2
azmnoman

Vous pouvez utiliser la version gratuite Database Publishing Wizard de Microsoft pour générer des fichiers texte avec des scripts SQL (CREATE TABLE et INSERT INTO).

Vous pouvez créer un tel fichier pour une seule table et "restaurer" la table complète, y compris les données, en exécutant simplement le script SQL.

2
Christian Specht

Utilisez l'Assistant d'importation et d'exportation SQL Server.

  1. sms
  2. Ouvrir le moteur de base de données
  3. Alt. cliquez sur la base de données contenant la table pour exporter
  4. Sélectionnez "Tâches"
  5. Sélectionnez "Exporter les données ..."
  6. Suivre l'assistant
2
EndUzr

Chaque modèle de récupération vous permet de sauvegarder une base de données SQL Server entière ou partielle ou des fichiers individuels ou des groupes de fichiers de la base de données. Sauvegardes au niveau des tables ne peut pas être créé.

Depuis: Aperçu de la sauvegarde (SQL Server)

1
Mitch Wheat

Une application gratuite nommée SqlTableZip accomplira le travail . En principe, vous écrivez une requête any (qui, bien sûr, peut également être [select * from table]) et l'application crée un fichier compressé avec toutes les données , qui peut être restauré plus tard.

Lien: http://www.doccolabs.com/products_sqltablezip.html

0
asapir

Si vous souhaitez pouvoir restaurer une table après que quelqu'un en a effacé par erreur des lignes, vous pouvez peut-être jeter un coup d'œil aux instantanés de base de données. Vous pouvez restaurer la table assez facilement (ou un sous-ensemble des lignes) à partir de l'instantané. Voir http://msdn.Microsoft.com/en-us/library/ms175158.aspx

0
SPE109

BMC Recovery Manager (anciennement SQLBacktrack) permet la récupération ponctuelle d'objets individuels dans une base de données (ou tables). Ce n'est pas bon marché mais fait un travail fantastique: http://www.bmc.com/products/proddocview/0,2832,19052_19429_70025639_147752,00.html

http://www.bmc.com/products/proddocview/0,2832,19052_19429_67883151_147636,00.html

0
Matt Rogish

Handy Backup crée automatiquement des fichiers de vidage à partir de MS SQL Server, y compris MSSQL 2005/2008. Ces vidages sont des fichiers binaires au niveau des tables, contenant des copies exactes du contenu de la base de données.

Pour effectuer un dump simple avec Handy Backup, suivez les instructions suivantes:

  1. Installez Handy Backup et créez une nouvelle tâche de sauvegarde.
  2. Sélectionnez «MSSQL» à l’étape 2 en tant que source de données. Sur une nouvelle fenêtre, marquez une base de données à sauvegarder.
  3. Choisissez parmi différentes destinations où vous allez stocker vos sauvegardes.
  4. À l’étape 4, sélectionnez l’option de sauvegarde «Complète». Configurez un horodatage si vous en avez besoin.
  5. Ignorez l'étape 5 à moins que vous n'ayez besoin de compresser ou de chiffrer un fichier de vidage résultant.
  6. A l'étape 6, configurez une planification pour la création périodique de sauvegardes (sinon exécutez une tâche manuellement).
  7. Encore une fois, passez l'étape 7 et donnez un nom à votre tâche à l'étape 8. Vous avez terminé la tâche!

Maintenant, lancez votre nouvelle tâche en cliquant sur une icône devant son nom ou attendez l'heure prévue. Handy Backup créera automatiquement un dump pour votre base de données . Ouvrez ensuite votre destination de sauvegarde. Vous trouverez un dossier (ou quelques dossiers) avec vos sauvegardes MS SQL. Un tel dossier contiendra un fichier de vidage au niveau de la table, composé de quelques tables binaires et de paramètres compressés dans un seul fichier Zip.

Autres bases de données

Handy Backup peut enregistrer des sauvegardes pour MySQL, MariaDB, PostgreSQL, Oracle, IBM DB2, Lotus Notes et toute base de données SQL générique dotée d’un pilote ODBC. Certaines de ces bases de données nécessitent des étapes supplémentaires pour établir des connexions entre le SGBD et Handy Backup.

Les outils décrits ci-dessus déchargent souvent les bases de données SQL sous forme de séquence de commande SQL au niveau de la table, ce qui permet de préparer ces fichiers pour toutes les modifications manuelles dont vous avez besoin.

0
Mark Geek

Vous avez probablement deux options, car SQL Server ne prend pas en charge les sauvegardes de table. Les deux commenceraient par écrire la création de la table. Ensuite, vous pouvez utiliser l'option Script Table - INSERT qui générera de nombreuses instructions insert ou utiliser les services d'intégration (DTS avec 2000) ou similaire pour exporter les données au format CSV ou similaire.

0
Miles D