Der einfachste Weg Daten aus einer Datenbank in eine CSV Datei zu schreiben ist das BCP Kommando.
BCP netFrame..NET_PERSON out c:\sysobjects.txt -c -t, -T –S
Das Standard Format für das BCP Kommando um eine CSV Datei zu erstellen ist:
BCP <table> out <filename> <switches>
Die switches die verwendet werden sind:
- -c Ausgabe in eine ASCII Datei mit dem Standard Feld Begrenzer (TAB) un der Zeilenschaltung (CRLF)
- -t Überschreibe den Feldbegrenzer mit einem anderen Zeichen
- -T Benutze eine sichere Verbindung. Beachte das U –P auch für username/password benutzt werden kann
- -S Verbinden dich mit folgendem Server um das Kommando auszuführen
Beachte das, wie auch DTS/SSIS, BCP eine Client Utility ist, und du auch die Verbindungsinformationen mitgeben musst.
Für den Transfer zwischen 2 SQL Servern sollten sie statt dem "-c" das "-N" (-N = Unicode) für das native Data Format verwenden.
Die ist viel schneller und verhindert Zeichensatz Konvertierungsprobleme.
Die BCP Command Utility wird über T-SQL mit der gesp. Prozedur cmdshell aufgerufen.
Erstellen sie ein Verzeichnis auf dem Gerät wo der SQL Server läuft mit dem Namen bcp (c:\bcp)
declare @sql varchar(8000)
select @sql = 'bcp netFrame..NET_PERSON out c:\bcp\sysobjects.txt -c -t, -T -S'+ servername
exec master..xp_cmdshell @sql</code>
{BR}
Verwenden eines anderen Feldbegrenzers (z.B ;):{br}
{BR}
<code sql>declare @sql varchar(8000)
select @sql = 'bcp netFrame..NET_PERSON out c:\bcp\sysobjects.txt -c –t; -T -S' +
servername
execmaster..xp_cmdshell@sql
Um einen andere Zeilenschaltung anzugeben verwenden sie das –r switch:
declare @sql varchar(8000)
select @sql = 'bcp netFrame..NET_PERSON out c:\bcp\sysobjects.txt -c -t, -r0x0D -T -S' + @@servername
exec master..xp_cmdshell @sql