Este equipo de trabajo ha pasado mucho tiempo investigando respuestas a tus interrogantes, te brindamos la respuesta así que nuestro objetivo es serte de gran ayuda.
Solución:
Intente usar un archivo de formato ya que su archivo de datos solo tiene 4 columnas. De lo contrario, intente OPENROWSET
o use una mesa de ensayo.
myTestFormatFiles.Fmt
puede verse como:
9.0 4 1 SQLINT 0 3 "," 1 StudentNo "" 2 SQLCHAR 0 100 "," 2 FirstName SQL_Latin1_General_CP1_CI_AS 3 SQLCHAR 0 100 "," 3 LastName SQL_Latin1_General_CP1_CI_AS 4 SQLINT 0 4 "rn" 4 Year "
(fuente: microsoft.com)
Este tutorial sobre saltar una columna con BULK INSERT
también puede ayudar.
Su declaración entonces se vería así:
USE xta9354
GO
BULK INSERT xta9354.dbo.Students
FROM 'd:userdataxta9_Students.txt'
WITH (FORMATFILE = 'C:myTestFormatFiles.Fmt')
En mi caso, estaba tratando con un archivo generado por hadoop en una caja de Linux. Cuando traté de importar a sql tuve este problema. La solución terminó siendo usar el valor hexadecimal para ‘salto de línea’ 0x0a. También funcionó para inserción a granel.
bulk insert table from 'file'
WITH (FIELDTERMINATOR = ',', ROWTERMINATOR = '0x0a')
También usamos el inserto a granel. El archivo que cargamos se envía desde un tercero. Después de un tiempo de resolución de problemas, me di cuenta de que su archivo tenía columnas con comas. Solo otra cosa que buscar…
Comentarios y puntuaciones de la guía
Al final de todo puedes encontrar las reseñas de otros programadores, tú además puedes mostrar el tuyo si lo deseas.