Sql server SQL Server:大容量插入失败

Sql server SQL Server:大容量插入失败,sql-server,Sql Server,我已经使用LOAD data INFILE从MySQL生成了一个以制表符分隔的数据文件,现在我正试图使用该文件将数据插入SQL Server;但是,我得到了以下错误: Msg 4863,16级,状态1,第2行 第1行第8列密钥版本的大容量加载数据转换错误截断 我猜原因是行终止,因为如果文件只包含一条记录,SQL Server中的大容量插入就可以工作。我尝试使用生成数据文件 LINES TERMINATED BY '\n' 以及“\n\r”,两者都返回相同的错误 用于生成制表符分隔数据文件的M

我已经使用LOAD data INFILE从MySQL生成了一个以制表符分隔的数据文件,现在我正试图使用该文件将数据插入SQL Server;但是,我得到了以下错误:

Msg 4863,16级,状态1,第2行 第1行第8列密钥版本的大容量加载数据转换错误截断

我猜原因是行终止,因为如果文件只包含一条记录,SQL Server中的大容量插入就可以工作。我尝试使用生成数据文件

LINES TERMINATED BY '\n' 
以及“\n\r”,两者都返回相同的错误

用于生成制表符分隔数据文件的MySQL查询为:

SELECT _id, event_timestamp, door_id, building_id, scanner_ip, key_id, key_name, key_version 
INTO OUTFILE 'B:/tmp/log_access_02.txt' FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n' 
FROM log_access;
SQL Server中的表结构为:

CREATE TABLE [dbo].[log_access]
(
    [_id] [int] IDENTITY(1,1) NOT NULL,
    [event_datetime] [datetime] NOT NULL,
    [door_id] [int] NOT NULL,
    [building_id] [int] NOT NULL,
    [scanner_ip] [varchar](15) NOT NULL,
    [key_id] [varchar](35) NULL,
    [key_name] [varchar](25) NULL,
    [key_version] [varchar](10) NULL,

    CONSTRAINT [PK_log_access] PRIMARY KEY CLUSTERED 
    ([_id] ASC)
) ON [PRIMARY]
GO

ALTER TABLE [dbo].[log_access] 
ADD CONSTRAINT [DF_Table_1_event_event_datetime]  
DEFAULT (getdate()) FOR [event_datetime]
GO
批量插入查询是:

BULK INSERT log_video_plays
FROM 'C:\share\log_access_02.txt'
WITH
(
   FIELDTERMINATOR = '\t'
   ,ROWTERMINATOR = '\n'
);
以及制表符分隔数据文件的示例:

1353097539  2014-09-10 00:00:00 1   2   192.168.1.4 a0074895532256BCDA40EF1536E08BC7628a    ABFGKLP-BRASR_v12   2.35.538.11353097540    2014-09-10 00:00:00 1   2   192.168.1.35    x0074893552256454A40EF1536E08BC7628x    ABFGKLP-BRASR_v12   2.35.538.1

您可以使用其他线路终止序列,例如\n \r例如RISC OS,\r例如Mac OS 9,\n most*nix系统,包括OS X和\r\n Windows。先试试看

BULK
INSERT log_video_plays
FROM 'C:\share\log_access_02.txt'
WITH
(
FIELDTERMINATOR = '\t'
,ROWTERMINATOR = '\r\n'
);

您的文件第一行是否有列名?否,该文件不包括列名;它仅由数据组成。行终止符可以是\r\n而不是单个\r\n吗?您提到尝试\n\r,但没有尝试\r\n Windows行终止符。我尝试了\r\n和\n,因为行终止符您的示例数据在记录1和记录2之间没有任何内容,所以在字段8上运行。选项卡是空间转换的,但这可能是因为C&P foofarawI还必须将MySQL查询更改为使用以“\r\n”结尾的行。