Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL Server:为什么批量加载失败?_Sql_Sql Server - Fatal编程技术网

SQL Server:为什么批量加载失败?

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提供程序“大容量”

当我取消注释rownum行时,大容量加载失败,出现以下错误。我知道这个问题的解决方法。但我需要理解为什么它会显示错误消息

Msg 4866,第16级,状态1,第41行
批量加载失败。数据文件中第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选项的批量插入也不起作用。因此,我必须在插入后手动添加列。