2013-01-23 146 views
2

这是我的SQL导入文本文件到SQL Server使用批量插入

BULK INSERT dbo.Account FROM 'G:\Import\Account3.txt' 
WITH 
(
    FIELDTERMINATOR = '" | "' 
) 
GO 

当我跑我得到这个错误

消息4866的SQL,级别16,状态1,行
批量加载失败。

行1列1的数据文件中的列太长。验证字段终止符和行终止符是否已正确指定。

消息7399,级别16,状态1,行
OLE DB提供程序 “BULK” 链接服务器 “(空)” 报告错误。提供者没有提供任何关于错误的信息。

Msg 7330,Level 16,State 2,Line 1
无法从链接服务器“(null)”的OLE DB提供程序“BULK”中获取一行。

请帮帮我。我已经尝试了很多方法,但仍然遇到同样的错误。

+1

请也Account3.txt –

回答

-1

试试这个

BULK 
INSERT dbo.Account 
FROM 'G:\Import\Account3.txt' 
WITH 
(
FIELDTERMINATOR = '|', 
ROWTERMINATOR = '\n' 
) 
GO 
+0

发布一些示例行。当我运行此脚本,我得到这个错误消息102,级别15,状态1,行1 不正确'GO'附近的语法。我希望有人能帮助我。这是我第一次做到这一点 – riza

+0

我试图使用另一个脚本,但仍然得到相同的错误。这是我的新脚本USE Reporting_DB_Test; GO BULK INSERT dbo.Account FROM 'G:\导入\ Account.txt' WITH( \t CHECK_CONSTRAINTS, FIELDTERMINATOR = ' “|”', KEEPNULLS, CODEPAGE = 'RAW', KEEPIDENTITY ) ; GO请真的需要帮助。 – riza

2

从你的例子SQL,看来你是缺少ROWTERMINATOR声明,指定行是如何从一个相互区别。

您的查询,然后会成为像

BULK INSERT dbo.Account FROM 'G:\Import\Account3.txt' 
WITH 
(
FIELDTERMINATOR = '" | "', 
ROWTERMINATOR = '\r\n' 
) 
GO