Sauvegarder une seule table avec ses données à partir d'une base de données dans SQL Server 2008


94

Je souhaite obtenir une sauvegarde d'une seule table avec ses données à partir d'une base de données dans SQL Server à l'aide d'un script.

Comment puis je faire ça?


Assistant d'importation / exportation SQL. Faites un clic droit sur votre base de données dans SMSS / Choisissez l'exportation d'article
realnumber3012

1
Je veux faire cela avec le script
EBS

4
Veuillez accepter la réponse de
MGOwen

Réponses:


33

Il existe de nombreuses façons de reprendre la table.

  1. BCP (BULK COPY PROGRAM)
  2. Générer un script de table avec des données
  3. Faites une copie de la table en utilisant SELECT INTO, exemple ici
  4. ENREGISTRER les données de la table directement dans un fichier plat
  5. Exporter des données en utilisant SSIS vers n'importe quelle destination

10
Bien que ce code puisse répondre à la question, fournir un contexte supplémentaire concernant la raison et / ou la manière dont il répond à la question améliorerait considérablement sa valeur à long terme. Veuillez modifier votre réponse pour ajouter des explications.
CodeMouse92

S'il s'agit d'une sauvegarde quotidienne, nous pouvons utiliser la réplication pour répliquer la table que vous souhaitez sauvegarder. Ensuite, sauvegardez la base de données des abonnés.
DBALUKE HUANG

@ CodeMouse92 D'accord. J'ai voté contre parce que la réponse est courte et manque d'explication.
Kolob Canyon le

145
select * into mytable_backup from mytable

Crée une copie de la table mytable et de chaque ligne qu'elle contient , appelée mytable_backup .


9
C'est bien que cette requête crée réellement la table "mytable_backup". Je ne m'attendais pas à cela et j'avais créé une nouvelle table sur laquelle sauvegarder.
AidanO

J'ai utilisé beaucoup de données pour sauvegarder des données dans un schéma différent, et je viens de remarquer que dans certaines circonstances, il y a des lignes MANQUANTES ! La cible pourrait être incomplète. Je ne suis pas sûr pourquoi. Mieux vaut vérifier le nombre de lignes après une telle sauvegarde.
Ben

41

Vous pouvez utiliser la fonction "Générer un script pour les objets de base de données" sur SSMS.

  1. Faites un clic droit sur la base de données cible
  2. Sélectionnez Tâches> Générer des scripts
  3. Choisissez la table souhaitée ou l'objet spécifique
  4. Appuyez sur le bouton Avancé
  5. Sous Général, choisissez la valeur sur les types de données à script . Vous pouvez sélectionner Données uniquement, Schéma uniquement et Schéma et données . Le schéma et les données incluent à la fois la création de table et les données réelles sur le script généré.
  6. Cliquez sur Suivant jusqu'à ce que l'assistant soit terminé

Celui-ci a résolu mon défi.
J'espère que cela vous aidera également.


21

Vous pouvez créer un script de table avec ses données en suivant les étapes suivantes:

  1. Faites un clic droit sur la base de données.
  2. Sélectionnez Tâches> Générer des scripts ...
  3. Cliquez sur Suivant.
  4. Cliquez sur Suivant.
  5. Dans les options de table / vue, définissez Données de script sur True; puis cliquez sur suivant.
  6. Cochez la case Tables et cliquez sur Suivant.
  7. Sélectionnez le nom de votre table et cliquez sur Suivant.
  8. Cliquez sur suivant jusqu'à ce que l'assistant soit terminé.

Pour plus d'informations, consultez le blog d'Eric Johnson.


11

Essayez d'utiliser la requête suivante qui créera la table respective dans la même base de données ou dans une autre base de données ("DataBase").

SELECT * INTO DataBase.dbo.BackUpTable FROM SourceDataBase.dbo.SourceTable

1
Est-ce différent de cette réponse précédente ?
Ofer Zelig le


3

Placez la table dans son propre groupe de fichiers. Vous pouvez ensuite utiliser la sauvegarde standard intégrée de SQL Server pour sauvegarder le groupe de fichiers dans lequel, en fait, sauvegarde la table.

Pour sauvegarder un groupe de fichiers, voir: https://docs.microsoft.com/en-us/sql/relational-databases/backup-restore/back-up-files-and-filegroups-sql-server

Pour créer une table sur un groupe de fichiers autre que celui par défaut (c'est facile), voir: Créer une table sur un groupe de fichiers autre que celui par défaut


3

Cette requête s'exécute pour moi (pour MySQL). mytable_backup doit être présent avant l'exécution de cette requête.

insert into mytable_backup select * from mytable

4
La question concerne SQL Server et non MySQL.
Stephen Kennedy

2

Une autre approche que vous pouvez adopter si vous devez sauvegarder une seule table parmi plusieurs tables d'une base de données est:

  1. Générer un script de table (s) spécifique (s) à partir d'une base de données (Cliquez avec le bouton droit sur la base de données, cliquez sur Tâche> Générer des scripts ...

  2. Exécutez le script dans l'éditeur de requêtes. Vous devez modifier / ajouter la première ligne (USE DatabaseName) dans le script à une nouvelle base de données, pour éviter d'obtenir l'erreur «La base de données existe déjà».

  3. Cliquez avec le bouton droit sur la base de données nouvellement créée, et cliquez sur Tâche> Sauvegarder ... La sauvegarde contiendra la ou les tables sélectionnées de la base de données d'origine.


0

Pour obtenir une copie dans un fichier sur le système de fichiers local, cet utilitaire branlant du menu du bouton Démarrer de Windows fonctionnait: "C: \ Program Files (x86) \ Microsoft SQL Server \ 110 \ DTS \ Binn \ DTSWizard.exe"

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.