Ich muss die Tabellen in der DB exportieren, aber in separate Dateien. Statt den Export-Assistenten in SQL Server Management Studio für jede Tabelle auszuführen, gibt es dafür einen schnelleren Weg? Die Daten müssen in einer durch Trennzeichen getrennten Form vorliegen. Ich habe eine solution gefunden, aber es zieht nicht die Daten, nur die Tabellendefinitionen.Schnellerer Weg zum Export von SQL-Tabellen in separate durch Trennzeichen getrennte Dateien?
Antwort
Hier ist eine Möglichkeit, es zu tun. Sie können xp_cmdshell
-- To allow advanced options to be changed.
EXEC sp_configure 'show advanced options', 1;
GO
-- To update the currently configured value for advanced options.
RECONFIGURE;
GO
-- To enable the feature.
EXEC sp_configure 'xp_cmdshell', 1;
GO
-- To update the currently configured value for this feature.
RECONFIGURE;
GO
Dann nutzen Sie die undokumentierte sp_msforeachtable und bcp ermöglichen begrenzt in eine Datei Rohr zu exportieren.
EXECUTE sp_msForEachTable
'EXECUTE master.dbo.xp_cmdshell ''bcp "SELECT * FROM ?" queryout D:\Data\?.txt -t "|" -c -T -S ServerName\InstanceName'''
Dies funktioniert und Sie werden Sie sicherstellen möchten, deaktivieren xp_cmdshell, wenn es nicht bereits aktiviert, wie es genutzt werden kann (es gibt viel zu diesem Thema zu lesen). Stellen Sie außerdem sicher, dass Sie über die erforderlichen Berechtigungen verfügen, um die Dateien überall dorthin zu schreiben, wo sie benötigt werden. So entfernen Sie die Striche unter Spaltennamen in die Ausgabedateien
Execute sp_MSforeachtable
'Execute master.dbo.xp_cmdshell ''sqlcmd -S DATABASE -E -d mydb -q "SET NOCOUNT ON SELECT * FROM ?" -W -o C:\TEMP\?.bak -s "|"'''
:
Das ist eine ausgezeichnete Lösung +1. – alas
Vielen Dank! –
@SQLChao, ich bin durch die Dokumentation bcp https://msdn.microsoft.com/en-us/library/ms162802.aspx, gibt es eine Parameteroption, Spaltennamen in die erste Zeile der Ausgabedateien einzuschließen? Vielen Dank. –
Sie können versuchen, mit bcp (siehe hier https://msdn.microsoft.com/en-us/library/ms162802.aspx), wo Sie das Exportformat angeben können, Pipe für das Trennzeichen zu verwenden. Der einzige Nachteil ist, dass Sie den Tabellennamen jedes Mal angeben müssen, so dass Sie wahrscheinlich eine Liste mit den Tabellennamen erstellen müssen und dann ein Powershell-Skript verwenden müssen, um die Liste zu durchlaufen und bcp auszuführen.
Ich fand auch die folgenden, die die sp_configure für xp_cmdshell gesetzt wurde als @SQLChao in seiner Lösung wies darauf hin, half, unter der Annahme,
SchließlichExecute sp_MSforeachtable
'Execute master.dbo.xp_cmdshell ''findstr /R /C:"^[^-]*$" c:\temp\?.bak > c:\temp\?.txt'''
, entfernen Sie die BAK-Dateien erstellt:
Execute master.dbo.xp_cmdshell 'del c:\temp\*.bak'
- 1. Getrennte Zeichenfolge nur durch Trennzeichen
- 2. Wie öffne ich durch Leerzeichen getrennte Dateien in Microsoft Excel?
- 3. Getrennte Dateien in vb.net
- 4. Separate Leerzeichen getrennte Wörter in einem String
- 5. Unix-Befehl zum Konvertieren von Tab-separierten Dateien in separate Pipe-Dateien
- 6. Gebäude Tabulator getrennte Dateien von einem Datentabelle
- 7. Cross-Plattform-Weg zum Lesen von Excel-Dateien in Python?
- 8. Explodieren durch Array von Trennzeichen
- 9. Gibt es einen guten Emacs-Modus zum Anzeigen und Bearbeiten von großen, durch Trennzeichen getrennten Dateien?
- 10. Java Unicode lesen unter Verwendung getrennte Dateien
- 11. Separate Dateien in Git
- 12. Handhabung Trennzeichen in einer Textdatei mit Tabulatoren getrennte Werte
- 13. Pandas: Schnellerer Weg, um durch einen Datenrahmen zu iterieren und neue Daten basierend auf Operationen hinzuzufügen
- 14. C-Header-Dateien - Korrekter Weg zum Einbinden
- 15. Excel Export nicht akzeptieren Tausender Trennzeichen
- 16. Split-String durch Trennzeichen
- 17. Java - Split durch Trennzeichen
- 18. Durch Komma getrennte Liste in Zweig
- 19. Durch Komma getrennte Liste von Array-Elementen
- 20. Pandas: read_csv Angabe ‚durch Leerzeichen getrennte‘
- 21. Separate Anpassungswert durch Bindestrich
- 22. Unix: Zeichenkette durch Regex-Trennzeichen
- 23. Extrahieren von QuickTime-Dateien von einer Ressource und Konvertieren von Dateien in separate Dateien
- 24. Korrekter Weg zum Lesen von Elf-Dateien in C
- 25. Proper Weg zum Löschen von Dateien in Android
- 26. Öffnen und Schließen von Dateien - separate Methoden
- 27. Durch Komma getrennte Werte in einem Datenbankfeld
- 28. Serilog getrennte Roll Dateien für jede SourceContext
- 29. Join Sammlung von Objekten in durch Komma getrennte Zeichenfolge
- 30. Separate Daten in Excel-Zellen mit Trennzeichen als ";"
Sie exportieren möchten alle Tabellen in CSV-Dateien? – SQLChao
Nein, zu durch Trennzeichen getrennten Dateien, separat eine Datei pro Tabelle. –
Sie könnten dies wahrscheinlich von Powershell tun – dfundako