SQL Server批量插入Ingore或跳过最后一行

时间:2017-08-15 09:18:51

标签: sql sql-server bulkinsert

我使用批量插入脚本将大量平面文件导入SQL Server

一些文件以

结尾
-----------------------------------

所以我想做的是或跳过最后一行或删除批量插入中的------------------。这些选择之一是否可能?

SET @s = N'BULK INSERT ' + @t + '
           FROM ''' + @f + '''
           WITH (FIELDTERMINATOR = ''|'',
                 ROWTERMINATOR = ''0x0a'',
                 FIRSTROW=2)  '

lastrow = 1无法正常工作

1 个答案:

答案 0 :(得分:0)

我能想到的唯一方法是首先将整个文件批量插入单个列表(如varchar(max))。您可以识别最后一行,并在实际bulk insert中使用该值。

这不是一个非常简单的方法,但我不认为还有另一种方法(除非你用C#或java或其他方式编写自定义解决方案)。也许您可以使用SQLCMD来首先读取文件中的行数,但我不知道如何。

请注意,Microsoft已关闭了connect项。在那个页面上微软建议使用openrowset解决方案,值得尝试,但我怀疑它会适用于你的情况。