Bulk insert el problema del instalador de filas

Tengo este csv llamado test.csv con el siguiente contenido

1,"test user",,,4075619900,example@example.com,"Aldelo for Restaurants","this is my deal",,"location4" 2,"joe johnson",,"32 bit",445555519,antle@gmail.com,"Restaurant Pro Express","smoe one is watching u",,"some location" 

Aquí está mi ARCHIVO SQL para hacer el inserto BULK

 USE somedb GO CREATE TABLE CSVTemp (id INT, name VARCHAR(255), department VARCHAR(255), architecture VARCHAR(255), phone VARCHAR(255), email VARCHAR(255), download VARCHAR(255), comments TEXT, company VARCHAR(255), location VARCHAR(255)) GO BULK INSERT CSVTemp FROM 'c:\test\test.csv' WITH ( FIELDTERMINATOR = ',', ROWTERMINATOR = '''+CHAR(124)+''+CHAR(10)+''' ) GO --Check the content of the table. SELECT * FROM CSVTemp GO 

pero lo que está sucediendo es que solo inserta un logging y toda la información del segundo logging se inserta en el campo de location en el primer logging

  id,name,department,architecture,phone,email,download,comments,company,location 1,"test user",NULL,NULL,4075619900,example@example.com,"Aldelo for Restaurants","this is my deal",NULL,"""location4""2,""joe johnson"",,""32 bit"",445555519,antle@gmail.com,""Restaurant Pro Express"",""smoe one is watching u"",,""some location""" 

Supongo que el problema es el ROWTERMINATOR pero probé todos estos

 ROWTERMINATOR = '\n' ROWTERMINATOR = '\r\n' ROWTERMINATOR = '\r' 

y todos los mismos resultados … cualquier idea sobre cómo solucionar esto

Estoy creando el csv así a través de PHP

Creo que el problema es que su file csv usa \n como EOL (modo Unix). BULK INSERT en SQL Server es "inteligente" e incluso si especifica ROWTERMINATOR como \n , que en teoría debería resolver su problema, lo antepone con \r por lo que termina con \r\n como terminador de fila.

Intenta usar ROWTERMINATOR='0x0A' . En este caso, SQL Server no realiza ningún truco de magia y simplemente usa el valor que ha establecido como terminador de fila.
Funciona para mi. 🙂

CHAR (124) es | y CHAR (10) es \ n

Probablemente necesites CHAR(13) y CHAR(10) como Row Terminator

http://www.techonthenet.com/ascii/chart.php