Verwenden von Datendateien und Formatdateien

Gilt für: SQL Server Azure SQL-Datenbank Azure SQL verwaltete Instanz Azure Synapse Analytics Analytics Platform System (PDW)

Das einfachste Massenkopierprogramm geht wie folgt vor:

  1. Ruft bcp_init auf, um massenweises Kopieren (BCP_OUT) aus einer Tabelle oder Ansicht in eine Datendatei anzugeben.

  2. Ruft bcp_exec auf, um den Massenkopievorgang auszuführen.

Die Datendatei wird im einheitlichen Modus erstellt. Daher werden Daten aus allen Spalten in der Tabelle oder Sicht in der Datendatei im gleichen Format wie in der Datenbank gespeichert. Die Datei kann dann mit derselben Vorgehensweise auf einen Server massenkopiert werden, mit der Ausnahme, dass DB_IN statt DB_OUT festgelegt wird. Dies funktioniert jedoch nur, wenn sowohl die Quell- als auch die Zieltabellen genau dieselbe Struktur aufweisen. Die resultierende Datendatei kann auch mithilfe des Schalters "/n" (nativer Modus) in das bcp-Hilfsprogramm eingegeben werden.

So kopieren Sie das Resultset einer Transact-SQL-Anweisung anstelle direkt aus einer Tabelle oder Ansicht:

  1. Rufen Sie bcp_init auf, um massenweises Kopieren anzugeben, geben Sie jedoch NULL für den Tabellennamen an.

  2. Rufen Sie bcp_control auf, wobei eOption auf BCPHINTS und iValue auf einen Zeiger auf eine SQLTCHAR-Zeichenfolge festgelegt ist, die die Transact-SQL-Anweisung enthält.

  3. Rufen Sie bcp_exec auf, um den Massenkopiervorgang auszuführen.

Die Transact-SQL-Anweisung kann eine beliebige Anweisung sein, die ein Resultset generiert. Die Datendatei wird erstellt, die den ersten Resultset der Transact-SQL-Anweisung enthält. Massenkopie ignoriert alle Resultsets nach dem ersten, wenn die Transact-SQL-Anweisung mehrere Resultsets generiert.

Um eine Datendatei zu erstellen, in der Spaltendaten in einem anderen Format als in der Tabelle gespeichert sind, rufen Sie bcp_columns auf, um anzugeben, wie viele Spalten geändert werden sollen, und rufen Sie dann bcp_colfmt für jede Spalte auf, deren Format Sie ändern möchten. Dies erfolgt nach dem Aufrufen von bcp_init , aber vor dem Aufrufen von bcp_exec. bcp_colfmt gibt das Format an, in dem die Daten der Spalte in der Datendatei gespeichert werden. Sie kann verwendet werden, wenn Massenkopien ein- oder ausgeblendet werden. Sie können auch bcp_colfmt verwenden, um die Zeilen- und Spaltenbeschriftung festzulegen. Wenn Ihre Daten z. B. keine Tabstoppzeichen enthalten, können Sie eine durch Tabstopp getrennte Datei erstellen , indem Sie bcp_colfmt verwenden, um das Tabstoppzeichen als Terminator für jede Spalte festzulegen.

Beim Massenkopien und Verwenden von bcp_colfmt können Sie ganz einfach eine Formatdatei erstellen, die die von Ihnen erstellte Datendatei beschreibt, indem Sie bcp_writefmt nach dem letzten Aufruf von bcp_colfmt aufrufen.

Lesen Sie beim Massenkopien kopieren aus einer durch eine Formatdatei beschriebenen Datendatei die Formatdatei, indem Sie bcp_readfmt nach bcp_init, aber vor bcp_exec aufrufen.

Die bcp_control-Funktion steuert mehrere Optionen beim Massenkopien in SQL Server aus einer Datendatei. bcp_control legt Optionen fest, z. B. die maximale Anzahl von Fehlern vor dem Beenden, die Zeile in der Datei, für die die Massenkopie gestartet werden soll, die Zeile, die angehalten werden soll, und die Batchgröße.

Weitere Informationen

Durchführen von Massenkopiervorgängen (ODBC)