BCP gibt keine Fehler zurück, kopiert aber auch keine Zeilen

Ich versuche, eine sehr große Menge von Daten aus einer CSV-Datei in eine SQL Server 2012-Datenbank zu sichern. Anstatt Tausende von INSERTs zu machen, untersuche ich esbcp.

BEARBEITEN: Dies ist ein automatisierter Prozess und nicht nur ein einmaliger. Habe ich auch nichtBULK INSERT Rechte an dieser Datenbank.

Wenn ich versuche, Daten in die Datenbank zu kopieren,bcp Gibt keine Fehler zurück, kopiert aber auch nichts - es kommt nur zurück0 rows copied. Ich habe das auf ein Minimum reduziert, das nicht funktioniert.

Erstellen Sie zunächst eine einfache Tabelle mit zwei Spalten:

CREATE TABLE [dbo].[mincase](
    [key] [varchar](36) NOT NULL,
    [number] [int] NOT NULL

    PRIMARY KEY CLUSTERED 
    (
        [key] ASC
    )
    WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 40) ON [PRIMARY]
) ON [PRIMARY]

GO

Dann benutzebcp um daraus eine Formatdatei zu erstellen. Beachten Sie, dass in diesem Beispiel eine XML-Formatdatei erstellt wird, es jedoch keine Rolle spielt, ob es sich dabei um XML oder um eine native Datei handelt.

bcp MyDB.dbo.mincase format nul -T -n -f mincasexml.fmt -x -S .\SQLEXPRESS

Erstellen Sie nun eine Datei data.csv mit einer Zeile und zwei durch Tabulatoren getrennten Einträgen. In meinem Fall ist die Datei einfach:

somecharacters  12345

Auch dies ist ein Tabulator, keine zwei Leerzeichen, und es scheint keine Rolle zu spielen, ob nachgestellte Zeilenumbrüche vorliegen oder nicht.

Versuchen Sie nun zu verwendenbcp mit dieser Formatdatei, um die Daten aus dieser Datei einzufügen:

bcp MyDB.dbo.mincase in data.csv -f mincasexml.fmt -T -S .\SQLEXPRESS

Anstatt Daten in die Datenbank zu kopieren, erhalte ich Folgendes:

Starting copy...

0 rows copied.
Network packet size (bytes): 4096
Clock Time (ms.) Total     : 1

Weiß jemand, was hier los ist?

Vielen Dank!

Antworten auf die Frage(2)

Ihre Antwort auf die Frage