SQL Server批量插入失败

时间:2013-12-09 03:30:36

标签: sql sql-server database bulkinsert

考虑一下表:

CREATE TABLE [dbo].[inputdata](
    [Name] [varchar](150) NULL,
    [AddressStreet] [varchar](150) NULL,
    [AddressStreet2] [varchar](150) NULL,
    [City] [varchar](150) NULL,
    [State] [varchar](2) NULL,
    [Zip] [varchar](5) NULL,
    [Phone] [varchar](10) NULL,
    [Campus] [varchar](50) NULL,
    [Access] [varchar](50) NULL,
    [Type] [varchar](50) NULL,
    [Degree] [varchar](50) NULL,
    [Unknown1] [varchar](50) NULL,
    [Unknown2] [varchar](50) NULL,
    [IdentType] [varchar](50) NULL,
    [Unknown3] [varchar](50) NULL
) ON [PRIMARY]

GO

SET ANSI_PADDING OFF
GO

插入脚本:

SET ANSI_DEFAULTS ON

BULK INSERT dbo.inputdata
FROM 'C:\inputdata.csv'
WITH (
   FIELDTERMINATOR = ','
   ,ROWTERMINATOR='\n' 
)

为什么输出以下错误:

  

批量加载失败。第1行第15列的数据文件中的列太长。验证是否正确指定了字段终止符和行终止符。

DataRow 1(我为此问题手动添加了\ n,该字符存在于文件的每一行中):

1CRESCENT CITY BARTENDING INSTITUTE,209 N. BROAD AVE., ,NEW ORLEANS,LA,70119,.,Regular,Private,1-2 years,Diploma, , ,IPEDSUNIT,158617,\n

2 个答案:

答案 0 :(得分:0)

在行尾有一个额外的字段终止符。额外的字段终止符可能会导致一般错误。

我希望这有帮助!

确保文件加载的一种方法是使用格式文件,这些方法包含使用批量插入的额外字段终止符或文本限定字段等奇怪项目。以下链接说明了如何创建其中一个文件。

http://technet.microsoft.com/en-us/library/ms191479(v=sql.105).aspx

答案 1 :(得分:0)

我试图重新创建你的问题,一切正常。 直到我尝试将文件转换为UNIX格式,其中换行符不同。这让我得到以下信息:

Bulk load data conversion error (truncation) for row 1, column 15 (Unknown3).

尝试使用十六进制编辑器查看您的文件。