2017-11-14 7 views
0

Erstes Problem prod: Ich bin neu in SSMS und zu versuchen, eine leere Tabelle mit einer CSV-Datei zu füllen:BULK INSERT Falsche Syntax in der Nähe von 'BULK'./BCP schiebt statt dev

BULK INSERT database.schema.ExpectedValuesBASE 
FROM 'bla\bla\bla\output_teaching.csv' 
WITH 
    (
     FIRSTROW = 2, 
     FIELDTERMINATOR = ',', --CSV field delimiter 
     ROWTERMINATOR = '\n', --Use to shift the control to next row 
     TABLOCK 
    ); 

Ich erhalte die folgende Fehlermeldung:

Parse error at line: 1, column: 1: Incorrect syntax near 'BULK'.

Zweites Problem:

BCP database.schema.ExpectedValuesBASE in blah/bla/output.csv -S DEVSERVERNAME -U ******** -P ****** -t ',' -q -c 

Dies wird den Wert auf den Produktionsserver, anstatt die angegebenen DEVSERVERNAME Schreiben

Antwort

0

Diese Abfrage verwendet Masseneinfügung, um die Datei in einem #temptable zu speichern, und fügt dann den Inhalt aus dieser temporären Tabelle in die Tabelle ein, die in der Datenbank gewünscht wird.

CREATE TABLE #temptable (col1,col2,col3) 
BULK INSERT #temptable from 'C:\yourfilelocation\yourfile.csv' 
WITH 
    (
    FIRSTROW = 2, 
    fieldterminator = ',', 
    rowterminator = '0x0A' 
    ) ` 


INSERT INTO yourTableInDataBase (col1,col2,col3) 
SELECT (col1,col2,col3) 
FROM #temptable 

Sie können entweder Abfrage oben in SQL Server ausführen, oder Sie können es innerhalb einer gespeicherten Prozedur setzen und die gespeicherte Prozedur mit der Batch aufrufen. Kopiere den folgenden Code und lege diesen in die Textdatei und speichere ihn als .cmd Erweiterung und renne.

set MYDB= yourDBname 
set MYUSER=youruser 
set MYPASSWORD=yourpassword 
set MYSERVER=yourservername 
sqlcmd -S %MYSERVER% -d %MYDB% -U %MYUSER% -P %MYPASSWORD% -h -1 -s "," -W -Q "exec yourstoredprocedure" 
+0

Wenn ich die obige Abfrage ausführen bekomme ich den gleichen Fehler Parse-Fehler in Zeile: 9, Spalte: 1: falsche Syntax nahe ‚MASSE‘ – user123328

+0

Sicherstellen, dass die Spalte Namen in der temptable (col1, col2, col3) haben denselben Namen und dasselbe Format (varchar, int usw.) wie die Spalten, die Sie importieren möchten. –

Verwandte Themen