Antworten:
Sie können den BACKUP DATABASE
Befehl nicht zum Sichern einer einzelnen Tabelle verwenden, es sei denn, die betreffende Tabelle ist natürlich einer eigenen Tabelle zugeordnet FILEGROUP
.
Wie Sie vorgeschlagen haben, können Sie die Tabellendaten in eine CSV-Datei exportieren. Um die Definition Ihrer Tabelle zu erhalten, können Sie das Skript "ausschreiben" CREATE TABLE
.
Sie können dies in SQL Server Management Studio wie folgt tun:
Klicken Sie mit der rechten Maustaste auf Datenbank> Aufgaben> Skript generieren
Sie können dann die Tabelle auswählen, die Sie ausschreiben möchten, und auch alle zugehörigen Objekte wie Einschränkungen und Indizes einschließen.
Um DATA
nur mit dem auszukommen schema
, müssen Sie Advanced
auf der Registerkarte "Skriptoptionen GENERAL
festlegen" Types of data to script
auswählen und im Abschnitt " Auswahl festlegen" auswählenSchema and Data
Ich hoffe, dies hilft, aber Sie können mich gerne direkt kontaktieren, wenn Sie weitere Unterstützung benötigen.
Advanced
auf der Registerkarte "Skriptoptionen festlegen" Types of data to script
auswählen und im Abschnitt "ALLGEMEIN" die Auswahl festlegen müssen Schema and Data
. Das war nicht offensichtlich, als ich es das erste Mal tat.
Ich verwende das Dienstprogramm für Massenkopien , um Sicherungen auf Tabellenebene zu erstellen
exportieren:
bcp.exe "select * from [MyDatabase].dbo.Customer " queryout "Customer.bcp" -N -S localhost -T -E
importieren:
bcp.exe [MyDatabase].dbo.Customer in "Customer.bcp" -N -S localhost -T -E -b 10000
Wie Sie sehen, können Sie basierend auf jeder Abfrage exportieren, sodass Sie damit sogar inkrementelle Sicherungen durchführen können. Außerdem ist es im Gegensatz zu den anderen hier genannten Methoden, die SSMS verwenden, skriptfähig.
Hier sind die Schritte, die Sie benötigen. Schritt 5 ist wichtig, wenn Sie die Daten möchten. In Schritt 2 können Sie einzelne Tabellen auswählen.
Die Version des EDIT- Stacks ist nicht gut lesbar. Hier ist ein Bild in voller Größe: http://i.imgur.com/y6ZCL.jpg
Sie können die folgende Abfrage ausführen, um eine Sicherung der vorhandenen Tabelle zu erstellen, wodurch eine neue Tabelle mit der vorhandenen Struktur der alten Tabelle zusammen mit den Daten erstellt wird.
select * into newtablename from oldtablename
Verwenden Sie die folgende Abfrage, um nur die Tabellenstruktur zu kopieren.
select * into newtablename from oldtablename where 1 = 2
Dies ähnelt der Lösung von qntmfred , verwendet jedoch einen direkten Tabellendump. Diese Option ist etwas schneller (siehe BCP-Dokumente ):
exportieren:
bcp "[MyDatabase].dbo.Customer " out "Customer.bcp" -N -S localhost -T -E
importieren:
bcp [MyDatabase].dbo.Customer in "Customer.bcp" -N -S localhost -T -E -b 10000
Wenn Sie nach etwas wie MySQL suchen DUMP
, dann eine gute Nachricht: SQL Server 2008 Management Studio hat diese Funktion hinzugefügt.
Klicken Sie in SSMS einfach mit der rechten Maustaste auf die betreffende Datenbank und wählen Sie Aufgaben> Skripte generieren . Stellen Sie dann auf der zweiten Seite des Optionsassistenten sicher , dass Sie auch die geskripteten Daten auswählen möchten. Dadurch wird generiert, was DUMP
für Sie einer Datei entspricht.
Erstellen Sie eine neue Dateigruppe, legen Sie diese Tabelle darauf und sichern Sie nur diese Dateigruppe.
Mit dem kostenlosen Assistenten zum Veröffentlichen von Datenbanken von Microsoft können Sie Textdateien mit SQL-Skripten (CREATE TABLE und INSERT INTO) generieren.
Sie können eine solche Datei für eine einzelne Tabelle erstellen und die gesamte Tabelle einschließlich der Daten "wiederherstellen", indem Sie einfach das SQL-Skript ausführen.
Ich weiß nicht, ob es zu dem hier beschriebenen Problem passt. Ich musste die inkrementelle Sicherung einer Tabelle erstellen! (Es sollten nur neu eingefügte Daten kopiert werden.) Ich habe dort ein DTS-Paket entworfen.
Ich hole neue Datensätze (basierend auf einer 'Status'-Spalte) und übertrage die Daten an das Ziel. (Durch 'Transform Data Task')
Dann habe ich gerade die Spalte 'Status' aktualisiert. (Durch 'SQL-Task ausführen')
Ich musste den 'Workflow' richtig reparieren.
Mit jedem Wiederherstellungsmodell können Sie eine ganze oder teilweise SQL Server-Datenbank oder einzelne Dateien oder Dateigruppen der Datenbank sichern. Sicherungen auf Tabellenebene können nicht erstellt werden .
Sie haben wahrscheinlich zwei Möglichkeiten, da SQL Server keine Tabellensicherungen unterstützt. Beide würden mit dem Erstellen von Skripten für die Tabellenerstellung beginnen. Anschließend können Sie entweder die Option Script Table - INSERT verwenden, die viele Einfügeanweisungen generiert, oder Sie können Integration Services (DTS mit 2000) oder ähnliches verwenden, um die Daten als CSV oder ähnlich zu exportieren.
BMC Recovery Manager (früher als SQLBacktrack bekannt) ermöglicht die Wiederherstellung einzelner Objekte in einer Datenbank (auch als Tabellen bezeichnet) zu einem bestimmten Zeitpunkt. Es ist nicht billig, macht aber einen fantastischen Job: 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
Wenn Sie eine Tabelle wiederherstellen möchten, nachdem jemand versehentlich Zeilen daraus gelöscht hat, können Sie sich möglicherweise Datenbank-Snapshots ansehen. Sie können die Tabelle ganz einfach (oder eine Teilmenge der Zeilen) aus dem Snapshot wiederherstellen. Siehe http://msdn.microsoft.com/en-us/library/ms175158.aspx
Eine kostenlose App namens SqlTableZip erledigt den Job. Grundsätzlich schreiben Sie jede Abfrage (die natürlich auch [select * from table] sein kann) und die App erstellt eine komprimierte Datei mit allen Daten, die später wiederhergestellt werden können.
Handy Backup erstellt automatisch Dump-Dateien von MS SQL Server, einschließlich MSSQL 2005/2008. Diese Speicherauszüge sind Binärdateien auf Tabellenebene, die genaue Kopien des jeweiligen Datenbankinhalts enthalten.
Befolgen Sie die folgenden Anweisungen, um mit Handy Backup einen einfachen Speicherauszug zu erstellen:
Führen Sie nun Ihre neue Aufgabe aus, indem Sie auf ein Symbol vor dem Namen klicken oder auf die geplante Zeit warten. Handy Backup erstellt automatisch einen Speicherauszug für Ihre Datenbank. Öffnen Sie dann Ihr Sicherungsziel. Sie finden einen Ordner (oder mehrere Ordner) mit Ihren MS SQL-Sicherungen. Jeder solche Ordner enthält eine Dump-Datei auf Tabellenebene, die aus einigen Binärtabellen und Einstellungen besteht, die in einer einzigen ZIP-Datei komprimiert sind.
Handy Backup kann Speicherauszüge für MySQL, MariaDB, PostgreSQL, Oracle, IBM DB2, Lotus Notes und jede generische SQL-Datenbank mit einem ODBC-Treiber speichern. Einige dieser Datenbanken erfordern zusätzliche Schritte, um Verbindungen zwischen dem DBMS und Handy Backup herzustellen.
Die oben beschriebenen Tools sichern SQL-Datenbanken häufig als SQL-Befehlssequenz auf Tabellenebene, sodass diese Dateien für alle erforderlichen manuellen Änderungen bereit sind.