Announcement

Collapse
No announcement yet.

Kopieren oder Exportieren einer SQL Server 2005 Tabelle in ein Textfile

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Kopieren oder Exportieren einer SQL Server 2005 Tabelle in ein Textfile

    Leztens musste ich die Feldinhalte einer Tabelle, die in einer SQL Server Datenbank liegt, in ein Textfile exportieren. Das hier soll anderen helfen, die dasselbe machen müssen oder wollen.

    Das ganze sollte auch für eine Automatisierung geeignet sein, damit es später auch von einem User mit geringem Fachwissen verwendet werden kann.

    Möglicherweise kann man es auch mit Transact-SQL Funktionen machen, aber ich selbst besitze keine tiefen Kenntnisse davon und habe es mit der Commandbox gemacht. Interessanterweise benötigt man dazu nicht mehr als eine Zeile. (Man kann es aber auch auf mehrere hinausziehen)

    Der Befehl nennt sich BCP

    Ich mache ein einfaches Beispiel und erkläre die einzelnen Teile, damit es auch für Beginner verständlich ist.

    Beispieldaten (Damit sind die Bezeichnungen des Geräts und des Servers gemeint):
    - Computername: BeispielPC
    - Instanzname: VorzeigeInstanz
    - Datenbank: TestDB
    - Tabelle: dbo.eineTabelle
    - Textfile: hierhineinexportieren.txt

    Beispiel:
    1. Die Commandbox öffnen
    2. Befehl eintippen -> C:\>bcp TestDB.dbo.eineTabelle out C:\Ordner\hierhinexportieren.txt -S BeispielPC\VorzeigeInstanz -T -c
    3. Das Textfile kontrollieren

    Erklärung:
    bcp - das ist der Befehl der eingegeben wird
    TestDB.dbo.eineTabelle - die Datenbank und die Tabelle aus der kopiert wird, Tabellen beginnen mit dbo.
    out - es wird hinauskopiert und nicht hinein, andere Optionen hierfür sind in (hineinkopieren), queryout (aus einer Abfrage kopieren) und format (eine Formadatei der Tabelle erstellen)
    C:\...\hierhinexportieren.txt - die Datei in die hineinkopiert wird mit komplettem Pfad
    -S BeispielPC\VorzeigeInstanz - Server und Instanz in der die Datenbank liegt
    -T - Windows Authentifizierung oder vertrauenswürdige Verbindung verwenden, alternativ kann auch mit -U und -P eine SQL Server Anmeldung angegeben werden (wird -P nicht angegeben wird danach gefragt)
    -c - Daten werden mit dem Format char geschrieben, mit Tabs und Zeilen mit Zeilenumbrüchen getrennt, bezeichnet welche Formate verwendet werden, Alternativen wären -f (mit einem Formatfile), -n (systemeigene Datentypen), -N (systemeigene Datentypen und Unicode für Zeichendaten), -w (Daten werden mit Unicode geschrieben), -V (Formate früherer SQL Server verwenden) und -6 (Formate der SQL Server 6.0 und 6.5)

    Für eine genauere Beschreibeung gibt es hier eine Seite von Microsoft über BCP.

  • #2
    Hallo,

    über TSQL zB
    [highlight=sql]
    DECLARE @sql varchar(4000);
    SELECT @sql = 'bcp "SELECT * FROM AdventureWorks.HumanResources.vEmployee" queryout "D:\...\CSVExport.csv" -c -t; -T -S' +@@servername
    EXEC master..xp_cmdshell @sql;
    [/highlight]
    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

    Comment

    Working...
    X