今天,我有一个从固定宽度文件中进行的大容量插入,如下所示:
BULK INSERT #TBF8DPR501
FROM 'C:\File.txt' WITH (
FORMATFILE = 'C:\File.txt.xml'
,ROWTERMINATOR = '\n'
)格式文件只是设置每个字段的宽度,在批量插入到临时表之后,我使用一个INSERT INTO X SELECT FROM temp来转换一些大容量无法转换的列。
我的问题是,是否有可能使大容量插入能够转换值,例如:
dd.MM.yyyy或ddMMyyyy格式的日期0000000000010022那样的十进制值(其中它是100.22)而不需要将大容量插入到临时表中来转换值?
发布于 2012-10-24 14:30:04
不,它不是:BULK INSERT只是尽可能快地复制数据,它不以任何方式转换数据。当前使用临时表的解决方案是数据仓库和报表场景中非常常见的解决方案,因此,如果它按您希望的方式工作,我将继续使用它。
如果您确实希望在加载期间执行转换,则可以使用ETL工具(如SSIS )。但是,您当前的方法没有什么问题,SSIS将是一个非常“沉重”的替代方案。
https://stackoverflow.com/questions/13049373
复制相似问题