3

今天我有一个固定宽度文件的批量插入,如下所示:

BULK INSERT #TBF8DPR501
FROM 'C:\File.txt' WITH (
        FORMATFILE = 'C:\File.txt.xml'
        ,ROWTERMINATOR = '\n'
        )

格式文件只是设置每个字段的宽度,批量插入临时表后,我创建了一个INSERT INTO X SELECT FROM temp用于转换一些批量无法转换的列。

我的问题是,是否有可能使批量插入能够转换值,例如:

  • 日期格式dd.MM.yyyyddMMyyyy
  • 像这样的十进制值0000000000010022(它在哪里100.22

无需将批量插入临时表以转换值?

4

1 回答 1

0

不,它不是:BULK INSERT只是尽可能快地复制数据,它不会以任何方式转换数据。您当前使用临时表的解决方案是数据仓库和报告方案中非常常用的解决方案,因此如果它按您希望的方式工作,我会继续使用它。

如果您确实想在加载期间进行转换,那么您可以使用ETL工具,例如SSIS。但是您当前的方法没有任何问题,SSIS 将是一个非常“重”的选择。

于 2012-10-24T14:30:04.020 回答