Sql server 用于大容量插入的文本文件的行终止符

Sql server 用于大容量插入的文本文件的行终止符,sql-server,Sql Server,我使用了以下代码,但创建文本文件的源(供应商)已更改,现在该命令插入0行,没有错误消息 以前的工作代码: DECLARE @cmd varchar(1000) SET @cmd = 'BULK INSERT CSU_bookslip_purch_daily_temp FROM ''C:\SSIS\BOOKSLIP\PARSED\Input.txt'' WITH ( FIRSTRO

我使用了以下代码,但创建文本文件的源(供应商)已更改,现在该命令插入0行,没有错误消息

以前的工作代码:

DECLARE @cmd varchar(1000)
SET @cmd = 'BULK INSERT CSU_bookslip_purch_daily_temp
            FROM ''C:\SSIS\BOOKSLIP\PARSED\Input.txt''
            WITH
                (
                   FIRSTROW = 2,
                   FIELDTERMINATOR = '','',
                   ROWTERMINATOR = ''' + CHAR(10) + ''')'

EXEC(@cmd)
我尝试将其更改为:

DECLARE @cmd varchar(1000)

SET @cmd = 'BULK INSERT CSU_bookslip_purch_daily_temp
FROM ''C:\SSIS\BOOKSLIP\PARSED\Input.txt''
WITH
(
FIRSTROW = 2,
FIELDTERMINATOR = '','',
ROWTERMINATOR = ''\n'')'
EXEC(@cmd)

您需要指定新行
\n
行终止符,如下所示:

ROWTERMINATOR = '0x0A'
如果无法解决问题,请安装记事本++

记事本++>>编辑>>下线转换>>Windows格式

如果文件是在非windows系统上生成的,则需要记事本++步骤,因为供应商已更改

此外,要使其正常工作,重要的是要导入的文件和目标表具有完全相同的列。如果表中的列不在csv中,则可能会出现此错误。反之亦然,如果文件中有表中没有的列。

您需要指定新行
\n
行终止符,如下所示:

ROWTERMINATOR = '0x0A'
如果无法解决问题,请安装记事本++

记事本++>>编辑>>下线转换>>Windows格式

如果文件是在非windows系统上生成的,则需要记事本++步骤,因为供应商已更改


此外,要使其正常工作,重要的是要导入的文件和目标表具有完全相同的列。如果表中的列不在csv中,则可能会出现此错误。反之亦然,如果文件中有表中没有的列。

文档会说,指定
\n
会在
\r\n
处拆分行

将\n指定为大容量导入的行终止符,或隐式使用默认行终止符时,bcp和大容量INSERT语句将使用回车换行组合(CRLF)作为行终止符。如果源文件仅使用换行符(LF)作为行终止符(Unix和Linux计算机上生成的文件中的典型情况),请使用十六进制表示法指定LF行终止符。例如,在批量插入语句中:

我觉得这太神奇了。那么也许可以试试十六进制代码


但实际上,我们需要知道输入文件中实际的行终止符。要找到答案,您可以用记事本++或类似的工具打开文件,并打开特殊字符(通常是一个带皮尔克罗的按钮)。

文档说,指定
\n
会在
\r\n
处拆分行,这确实是一件好事

将\n指定为大容量导入的行终止符,或隐式使用默认行终止符时,bcp和大容量INSERT语句将使用回车换行组合(CRLF)作为行终止符。如果源文件仅使用换行符(LF)作为行终止符(Unix和Linux计算机上生成的文件中的典型情况),请使用十六进制表示法指定LF行终止符。例如,在批量插入语句中:

我觉得这太神奇了。那么也许可以试试十六进制代码


但实际上,我们需要知道输入文件中实际的行终止符。要找到答案,您可以使用记事本++或类似工具打开文件,并启用特殊字符(通常是一个带有pilcrow的按钮)。

请提供Input.txt中的示例数据。擦洗它的敏感数据,它可以只是几行。我猜文件不再是逗号分隔的,或者行终止符不再是换行符(\n)。请提供Input.txt中的示例数据。擦洗它的敏感数据,它可以只是几行。我猜文件不再是逗号分隔的,或者行终止符不再是换行符(\n)。在windows中,换行符是
\r\n
char(13)+char(10)
,因此OP的代码仍然应该拆分行,只在末尾使用多余的回车符。查看示例文件将非常有用。这里的信息非常有限。在windows中,换行符是
\r\n
char(13)+char(10)
,因此OP的代码仍应拆分行,仅在末尾使用多余的回车符。查看示例文件将非常有帮助。这里的信息非常有限。