BULK INSERT列数不一致

ace*_*ole 6 t-sql sql-server sql-server-2008

我试图使用BULK INSERT从平面文件加载SQL服务器中的大量数据.但是,我的文件具有不同数量的列,例如第一行包含14,第二行包含4.这没关系,我只想创建一个具有最大列数的表,并将文件加载到其中,其中包含NULL缺少列.从那时起我就可以玩它.但似乎SQL Server在到达行尾并且有更多列填充目标表中的同一行时,只是转到下一行并尝试将该行上的数据放到错误的列中桌子.

有没有办法获得我正在寻找的行为?有没有可以用来指定它的选项?有没有人遇到过这个?

这是代码

BULK INSERT #t
FROM '<path to file>'
WITH 
(
  DATAFILETYPE = 'char',
  KEEPNULLS,
  FIELDTERMINATOR = '#'
)
Run Code Online (Sandbox Code Playgroud)

Phi*_*ley 5

批量插入不是特别灵活。一种解决方法是将每行数据加载到包含一个大varchar列的临时表中。加载后,您可以使用自己的例程解析每一行。