SQL Server Express 2005中的批量插入不起作用

时间:2009-08-18 08:43:41

标签: sql-server bulkinsert

我在将数据批量插入SQL Express 2005数据库时出现问题。

我正在使用以下代码:

BULK INSERT [dbEPi].[dbo].[postcode]
FROM 'C:\Development\postnummerRegister.txt'
WITH 
(
    FIELDTERMINATOR = '\t',
    ROWTERMINATOR = '\n'
)

我收到以下错误:

Msg 4866, Level 16, State 1, Line 1
The bulk load failed. The column is too long in the data file for row 1, column 5. Verify that the field terminator and row terminator are specified correctly.
Msg 7399, Level 16, State 1, Line 1
The OLE DB provider "BULK" for linked server "(null)" reported an error. The provider did not give any information about the error.
Msg 7330, Level 16, State 2, Line 1
Cannot fetch a row from OLE DB provider "BULK" for linked server "(null)".

我要导入的数据文件can be located here

有任何帮助。

更新1 以下是我正在使用的数据示例:

0001    OSLO    0301    OSLO    K
0010    OSLO    0301    OSLO    F
0014    OSLO    0301    OSLO    K
0015    OSLO    0301    OSLO    K
0016    OSLO    0301    OSLO    K
0017    OSLO    0301    OSLO    K
0018    OSLO    0301    OSLO    G
0020    OSLO    0301    OSLO    K
0021    OSLO    0301    OSLO    K

更新2

我设法现在导入它们。我所做的只是将文本复制到一个新文件中,并将其保存为test.txt。我不知道为什么会这样。可能是因为文件编码。该文件是UTF8编码的。

1 个答案:

答案 0 :(得分:2)

首先,rowterminators似乎是文件中的窗口行结尾0D 0A。 (CR LF)。我相信这会转化为\r\n。但问题仍然存在。

MS http://support.microsoft.com/kb/935446

似乎有一个修补程序