Sichern Sie eine einzelne Tabelle mit ihren Daten aus einer Datenbank in SQL Server 2008

88

Ich möchte eine Sicherung einer einzelnen Tabelle mit ihren Daten aus einer Datenbank in SQL Server mithilfe eines Skripts erhalten.

Wie kann ich das machen?

EBS
quelle
SQL-Import / Export-Assistent. Klicken Sie mit der rechten Maustaste auf Ihre Datenbank in SMSS / Choose Item Export
realnumber3012
1
Ich möchte dies mit Skript tun
EBS
4
Bitte akzeptieren Sie MGOwens Antwort
greg121

Antworten:

28

Es gibt viele Möglichkeiten, wie Sie den Tisch zurücknehmen können.

  1. BCP (BULK COPY PROGRAM)
  2. Generieren Sie ein Tabellenskript mit Daten
  3. Erstellen Sie eine Kopie der Tabelle mit SELECT INTO (Beispiel hier)
  4. Tabellendaten direkt in einer Flatfile speichern
  5. Exportieren Sie Daten mit SSIS an ein beliebiges Ziel
Vijay Hulmani
quelle
9
Während dieser Code die Frage möglicherweise beantwortet, würde die Bereitstellung eines zusätzlichen Kontexts darüber, warum und / oder wie er die Frage beantwortet, ihren langfristigen Wert erheblich verbessern. Bitte bearbeiten Sie Ihre Antwort, um eine Erklärung hinzuzufügen.
CodeMouse92
Wenn es sich um eine tägliche Sicherung handelt, können wir die Replikation verwenden, um die Tabelle zu replizieren, die Sie sichern möchten. Sichern Sie dann die Teilnehmerdatenbank.
DBALUKE HUANG
@ CodeMouse92 Einverstanden. Ich habe abgestimmt, weil die Antwort kurz ist und keine Erklärung enthält.
Kolob Canyon
140
select * into mytable_backup from mytable

Erstellt eine Kopie der Tabelle mytable und jeder Zeile darin mit dem Namen mytable_backup .

MGOwen
quelle
9
Es ist schön, dass diese Abfrage tatsächlich die Tabelle "mytable_backup" erstellt. Ich hatte das nicht erwartet und eine neue Tabelle zum Sichern erstellt.
AidanO
Ich habe diese Menge verwendet, um Daten in einem anderen Schema zu sichern, und ich habe gerade bemerkt, dass unter bestimmten Umständen Zeilen fehlen ! Das Ziel könnte unvollständig sein. Ich bin mir nicht sicher warum. Überprüfen Sie nach einer solchen Sicherung besser die Zeilenanzahl.
Ben
38

Sie können die Funktion "Skript für Datenbankobjekte generieren" unter SSMS verwenden.

  1. Klicken Sie mit der rechten Maustaste auf die Zieldatenbank
  2. Wählen Sie Aufgaben> Skripte generieren
  3. Wählen Sie die gewünschte Tabelle oder ein bestimmtes Objekt
  4. Klicken Sie auf die Schaltfläche Erweitert
  5. Wählen Sie unter "Allgemein" den Wert für die zu skriptenden Datentypen aus . Sie können Nur Daten, Nur Schema sowie Schema und Daten auswählen . Schema und Daten umfassen sowohl die Tabellenerstellung als auch die tatsächlichen Daten des generierten Skripts.
  6. Klicken Sie auf Weiter, bis der Assistent abgeschlossen ist

Dieser hat meine Herausforderung gelöst.
Hoffe das wird dir auch helfen.

Kent Aguilar
quelle
21

Mit den folgenden Schritten können Sie ein Tabellenskript zusammen mit seinen Daten erstellen:

  1. Klicken Sie mit der rechten Maustaste auf die Datenbank.
  2. Wählen Sie Aufgaben> Skripte generieren ...
  3. Weiter klicken.
  4. Weiter klicken.
  5. Setzen Sie in den Tabellen- / Ansichtsoptionen die Skriptdaten auf True. Klicken Sie dann auf Weiter.
  6. Aktivieren Sie das Kontrollkästchen Tabellen und klicken Sie auf Weiter.
  7. Wählen Sie Ihren Tabellennamen und klicken Sie auf Weiter.
  8. Klicken Sie auf Weiter, bis der Assistent fertig ist.

Weitere Informationen finden Sie in Eric Johnsons Blog.

Pankaj
quelle
10

Versuchen Sie es mit der folgenden Abfrage, mit der die entsprechende Tabelle in derselben oder einer anderen Datenbank ("Datenbank") erstellt wird.

SELECT * INTO DataBase.dbo.BackUpTable FROM SourceDataBase.dbo.SourceTable
BJ Patel
quelle
Ist es anders als diese vorherige Antwort ?
Ofer Zelig
8

Sichern Sie eine einzelne Tabelle mit ihren Daten aus einer Datenbank in SQL Server 2008

SELECT * INTO  [dbo].[tbl_NewTable] 
FROM [dbo].[tbl_OldTable]
Code
quelle
Ist es anders als diese vorherige Antwort ?
Ofer Zelig
3

Stellen Sie die Tabelle in eine eigene Dateigruppe. Sie können dann die in SQL Server integrierte reguläre Sicherung verwenden, um die Dateigruppe zu sichern, in der die Tabelle tatsächlich gesichert wird.

Informationen zum Sichern einer Dateigruppe finden Sie unter: https://docs.microsoft.com/en-us/sql/relational-databases/backup-restore/back-up-files-and-filegroups-sql-server

Informationen zum Erstellen einer Tabelle in einer nicht standardmäßigen Dateigruppe (ganz einfach) finden Sie unter: Erstellen einer Tabelle in einer anderen als der Standard-Dateigruppe

benjamin moskovits
quelle
2

Ein anderer Ansatz, den Sie wählen können, wenn Sie eine einzelne Tabelle aus mehreren Tabellen in einer Datenbank sichern müssen, ist:

  1. Generieren Sie ein Skript für bestimmte Tabellen aus einer Datenbank (Klicken Sie mit der rechten Maustaste auf Datenbank, klicken Sie auf Aufgabe> Skripte generieren ...

  2. Führen Sie das Skript im Abfrageeditor aus. Sie müssen die erste Zeile (USE DatabaseName) im Skript zu einer neuen Datenbank ändern / hinzufügen, um zu vermeiden, dass der Fehler "Datenbank ist bereits vorhanden" angezeigt wird.

  3. Klicken Sie mit der rechten Maustaste auf die neu erstellte Datenbank und klicken Sie auf Aufgabe> Sichern ... Die Sicherung enthält die ausgewählten Tabellen aus der ursprünglichen Datenbank.

Simpa
quelle
2

Diese Abfrage wird für mich ausgeführt (für MySQL). mytable_backup muss vorhanden sein, bevor diese Abfrage ausgeführt wird.

insert into mytable_backup select * from mytable
Umesh Kumar Sharma
quelle
4
Die Frage betrifft SQL Server, nicht MySQL.
Stephen Kennedy
0

Um eine Kopie in einer Datei im lokalen Dateisystem zu erhalten, funktionierte dieses klapprige Dienstprogramm über das Windows-Startschaltflächenmenü: "C: \ Programme (x86) \ Microsoft SQL Server \ 110 \ DTS \ Binn \ DTSWizard.exe"

wwmbes
quelle