Comment effectuer une sauvegarde au niveau de la table (vidage) dans MS SQL Server 2005/2008?
Réponses:
Vous ne pouvez pas utiliser la BACKUP DATABASE
commande pour sauvegarder une seule table, à moins bien sûr que la table en question ne soit allouée à la sienne FILEGROUP
.
Ce que vous pouvez faire, comme vous l’avez suggéré, est d’exporter les données du tableau dans un fichier CSV. Maintenant, pour obtenir la définition de votre table, vous pouvez "Script out" le CREATE TABLE
script.
Vous pouvez le faire dans SQL Server Management Studio, en:
clic droit Base de données> Tâches> Générer un script
Vous pouvez ensuite sélectionner la table que vous souhaitez exécuter par script et également choisir d'inclure tous les objets associés, tels que les contraintes et les index.
afin de vous en sortir DATA
avec juste le schema
, vous devez choisir Advanced
sur l'onglet des options de script, et dans la GENERAL
section définir le Types of data to script
selectSchema and Data
J'espère que cela vous aidera, mais n'hésitez pas à me contacter directement si vous avez besoin d'une assistance supplémentaire.
Advanced
dans l'onglet des options de script, et dans la section GÉNÉRAL, définir la Types of data to script
sélection Schema and Data
. Ce n'était pas évident la première fois que je l'ai fait.
J'utilise l' utilitaire de copie en bloc pour réaliser des sauvegardes au niveau de la table
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 voir, vous pouvez exporter en fonction de n'importe quelle requête, vous pouvez donc même faire des sauvegardes incrémentielles avec cela. De plus, il est scriptable par opposition aux autres méthodes mentionnées ici qui utilisent SSMS.
Voici les étapes dont vous avez besoin. L'étape 5 est importante si vous voulez les données. L'étape 2 est l'endroit où vous pouvez sélectionner des tables individuelles.
La version de la pile EDIT n'est pas tout à fait lisible ... voici une image en taille réelle http://i.imgur.com/y6ZCL.jpg
Vous pouvez exécuter la requête ci-dessous pour effectuer une sauvegarde de la table existante qui créerait 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
Ceci est similaire à la solution de qntmfred , mais en utilisant un vidage de table direct. Cette option est légèrement plus rapide (voir la documentation 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
Si vous recherchez quelque chose comme MySQL DUMP
, alors bonne nouvelle: SQL Server 2008 Management Studio a ajouté cette capacité.
Dans SSMS, faites un clic droit sur la base de données en question et sélectionnez Tâches> Générer des scripts . Ensuite, dans la 2ème page de l'assistant d'options, assurez-vous de sélectionner que vous souhaitez également les données scriptées , et cela générera ce qui équivaut à un DUMP
fichier pour vous.
Créez un nouveau groupe de fichiers, placez-y cette table et sauvegardez uniquement ce groupe de fichiers.
Vous pouvez utiliser l' assistant de publication de base de données gratuit 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 vous pouvez "restaurer" la table complète, y compris les données, en exécutant simplement le script SQL.
Je ne sais pas si cela correspondra au problème décrit ici. J'ai dû prendre la 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 package DTS où.
Je récupère de nouveaux enregistrements (sur la base d'une colonne «statut») et transfère les données vers la destination. (Via 'Transformer la tâche de données')
Ensuite, je viens de mettre à jour la colonne «statut». (Via 'Exécuter la tâche SQL')
J'ai dû réparer correctement le «flux de travail».
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 ou groupes de fichiers individuels de la base de données. Les sauvegardes au niveau de la table ne peuvent pas être créées .
Vous avez probablement deux options, car SQL Server ne prend pas en charge les sauvegardes de table. Les deux commenceraient par le script de la création de la table. Ensuite, vous pouvez soit utiliser l'option Script Table - INSERT qui générera de nombreuses instructions d'insertion, soit utiliser les services d'intégration (DTS avec 2000) ou similaires pour exporter les données au format CSV ou similaire.
BMC Recovery Manager (anciennement connu sous le nom de SQLBacktrack) permet la récupération à un moment donné d'objets individuels dans une base de données (alias 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
Si vous cherchez à pouvoir restaurer une table après que quelqu'un en ait supprimé des lignes par erreur, vous pouvez peut-être jeter un œil aux instantanés de la base de données. Vous pouvez restaurer la table assez facilement (ou un sous-ensemble de lignes) à partir de l'instantané. Voir http://msdn.microsoft.com/en-us/library/ms175158.aspx
Une application gratuite nommée SqlTableZip fera le travail. En gros, vous écrivez tout requête (qui, bien sûr, peut également être [sélectionner * à partir de la table]) et l'application crée un fichier compressé avec toutes les données, qui peut être restauré plus tard.
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 de niveau table, contenant des copies exactes du contenu de la base de données particulière.
Pour effectuer un simple vidage avec Handy Backup, veuillez suivre les instructions suivantes:
Maintenant, exécutez votre nouvelle tâche en cliquant sur une icône avant son nom, ou attendez l'heure prévue. Handy Backup créera automatiquement un vidage pour votre base de données. Ensuite, ouvrez 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 paramètres compressés dans un seul ZIP.
Handy Backup peut enregistrer des vidages pour MySQL, MariaDB, PostgreSQL, Oracle, IBM DB2, Lotus Notes et toute base de données SQL générique ayant 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 vident souvent les bases de données SQL sous forme de séquence de commandes SQL au niveau de la table, ce qui rend ces fichiers prêts pour toutes les modifications manuelles dont vous avez besoin.