SQL Server:为什么批量加载失败?
当我取消注释rownum行时,大容量加载失败,出现以下错误。我知道这个问题的解决方法。但我需要理解为什么它会显示错误消息 Msg 4866,第16级,状态1,第41行SQL Server:为什么批量加载失败?,sql,sql-server,Sql,Sql Server,当我取消注释rownum行时,大容量加载失败,出现以下错误。我知道这个问题的解决方法。但我需要理解为什么它会显示错误消息 Msg 4866,第16级,状态1,第41行 批量加载失败。数据文件中第1行第1列的列太长。验证是否正确指定了字段终止符和行终止符 味精7399,第16级,状态1,第41行 链接服务器(null)的OLE DB提供程序“大容量”报告了错误。提供程序没有提供有关错误的任何信息 消息7330,第16级,状态2,第41行 无法从链接服务器(null)的OLE DB提供程序“大容量”
批量加载失败。数据文件中第1行第1列的列太长。验证是否正确指定了字段终止符和行终止符 味精7399,第16级,状态1,第41行
链接服务器(null)的OLE DB提供程序“大容量”报告了错误。提供程序没有提供有关错误的任何信息 消息7330,第16级,状态2,第41行
无法从链接服务器(null)的OLE DB提供程序“大容量”中获取行 代码:
CREATE TABLE #TEMPFILE
(
LINE VARCHAR(5000)
,rownum int identity(1,1) primary key
)
EXEC('BULK INSERT #TEMPFILE FROM '''+ @FILENAME + ''' WITH (ROWTERMINATOR = ''0x0a'', lastrow = 1) ')
这是我在SQL Server中用于批量插入的语法
BULK
INSERT Table_Name
FROM FileName/FilePath
WITH
(
FIRSTROW = 2,
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
)
我知道解决方法,但如果一行不能存储一定数量的数据,是否有限制?@Priyesh是的,如果数据长度超过指定的字段。可能您尚未指定字段终止符too@Priyesh您试图插入的数据示例是什么?我试图实现的是将行终止符=“\n”的任何分隔符文件数据插入到#tempfile table的行列中,并将另一列作为标识列用于查询。令人惊讶的是,带有keepidentity选项的批量插入也不起作用。因此,我必须在插入后手动添加列。