批量插入问题

Tip*_*ppu 8 sql bulkinsert sql-server-2005 sql-server-2008

我试图将此链接中的数据插入到我的SQL服务器 https://www.ian.com/affiliatecenter/include/V2/CityCoordinatesList.zip

我创建了表格

CREATE TABLE [dbo].[tblCityCoordinatesList](
    [RegionID] [int] NOT NULL,
    [RegionName] [nvarchar](255) NULL,
    [Coordinates] [nvarchar](4000) NULL
) ON [PRIMARY]
Run Code Online (Sandbox Code Playgroud)

我正在运行以下脚本来执行批量插入

BULK INSERT tblCityCoordinatesList
FROM 'C:\data\CityCoordinatesList.txt' 
WITH 
( 
    FIRSTROW = 2, 
    MAXERRORS = 0, 
    FIELDTERMINATOR = '|', 
    ROWTERMINATOR = '\n'
)
Run Code Online (Sandbox Code Playgroud)

但是批量插入失败并出现以下错误

Cannot obtain the required interface ("IID_IColumnsInfo") from OLE DB provider "BULK" for linked server "(null)".
Run Code Online (Sandbox Code Playgroud)

当我google时,我发现有几篇文章说这个问题可能与RowTerminator有关,但是我尝试了/ n/r,/ n等所有内容,但没有任何工作.

有人可以帮我把这些数据插入我的数据库吗?

小智 34

试试ROWTERMINATOR = '0x0a'.它应该工作.

  • 惊人的!这就成功了。你能解释一下这个“0x0a”吗?谢谢。 (2认同)
  • '0x0a' 是 ASCII 字符“新行”的十六进制值 - 我不确定它的作用是什么,而 \n(也是“新行”)却没有...... (2认同)
  • 由于某种原因我一直不明白,当你输入'\n'时,MSSQL会在它的前面添加一个'\r'。 (2认同)

use*_*949 14

如果表和导入的文件之间的列数不匹配,也会发生这种情况