Microsoft SQL Server
BULK Import
Suche…
BULK INSERT mit Optionen
Sie können die Parsing-Regeln mit verschiedenen Optionen in WITH-Klausel anpassen:
BULK INSERT People
FROM 'f:\orders\people.csv'
WITH ( CODEPAGE = '65001',
FIELDTERMINATOR =',',
ROWTERMINATOR ='\n'
);
In diesem Beispiel gibt CODEPAGE an, dass eine Quelldatei in der UTF-8-Datei und TERMINATORS eine Koma und eine neue Zeile sind.
BULK INSERT
Der Befehl BULK INSERT kann zum Importieren von Dateien in SQL Server verwendet werden:
BULK INSERT People
FROM 'f:\orders\people.csv'
Der Befehl BULK INSERT ordnet Spalten in Dateien mit Spalten in der Zieltabelle zu.
Lesen des gesamten Dateiinhalts mit OPENROWSET (BULK)
Sie können den Inhalt einer Datei mit der Funktion OPENROWSET (BULK) lesen und den Inhalt in einer Tabelle speichern:
INSERT INTO myTable(content)
SELECT BulkColumn
FROM OPENROWSET(BULK N'C:\Text1.txt', SINGLE_BLOB) AS Document;
Die Option SINGLE_BLOB liest den gesamten Inhalt aus einer Datei als einzelne Zelle.
Datei mit OPENROWSET (BULK) lesen und Datei formatieren
Sie können das Format der Datei definieren, die mit der Option FORMATFILE importiert wird:
INSERT INTO mytable
SELECT a.*
FROM OPENROWSET(BULK 'c:\test\values.txt',
FORMATFILE = 'c:\test\values.fmt') AS a;
Die Formatdatei format_file.fmt beschreibt die Spalten in values.txt:
9.0
2
1 SQLCHAR 0 10 "\t" 1 ID SQL_Latin1_General_Cp437_BIN
2 SQLCHAR 0 40 "\r\n" 2 Description SQL_Latin1_General_Cp437_BIN
Json-Datei mit OPENROWSET lesen (BULK)
Sie können OPENROWSET verwenden, um den Inhalt einer Datei zu lesen und an eine andere Funktion zu übergeben, die die Ergebnisse analysiert.
Das folgende Beispiel zeigt, wie der gesamte Inhalt der JSON-Datei mithilfe von OPENROWSET (BULK) gelesen werden kann. Anschließend können Sie der OPENJSON-Funktion BulkColumn zur Verfügung stellen, die JSON analysiert und Spalten zurückgibt:
SELECT book.*
FROM OPENROWSET (BULK 'C:\JSON\Books\books.json', SINGLE_CLOB) as j
CROSS APPLY OPENJSON(BulkColumn)
WITH( id nvarchar(100), name nvarchar(100), price float,
pages int, author nvarchar(100)) AS book