Comment effectuer une sauvegarde au niveau de la table (vidage) dans MS SQL Server 2005/2008?
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.
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.
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
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
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
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.
Créez un nouveau groupe de fichiers, placez cette table dessus et sauvegardez ce groupe de fichiers uniquement.
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ù.
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')
Ensuite, je viens de mettre à jour la colonne "statut". (Via 'Execute SQL Task')
Je devais corriger le «flux de travail» correctement.
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.
Utilisez l'Assistant d'importation et d'exportation SQL Server.
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éé.
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.
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
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
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:
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.
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.
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.