Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SSIS是否在到达ADO NET目标之前将文本文件读取到临时表?_Ssis_Bids - Fatal编程技术网

SSIS是否在到达ADO NET目标之前将文本文件读取到临时表?

SSIS是否在到达ADO NET目标之前将文本文件读取到临时表?,ssis,bids,Ssis,Bids,我有一个上传到tsql表的文本文件。这很简单,但由于一些不一致,我需要将此文件上载到一个#tentable或@tableVariable,在那里清理它,然后将其上载到物理表 所以本质上,我有一个平面文件源,它读取带有不一致的txt文件,并将其上传到ADO NET Destination中的表中。如果目标表中的所有列都是varchar,那么我就可以将其保存在物理表中,并运行一些tsql脚本进行清理。但我不想那样做 我也可以在创建/删除临时表之前和之后运行tsql脚本,但是如果有办法使用#temp或

我有一个上传到tsql表的文本文件。这很简单,但由于一些不一致,我需要将此文件上载到一个
#tentable
@tableVariable
,在那里清理它,然后将其上载到物理表

所以本质上,我有一个
平面文件源
,它读取带有不一致的txt文件,并将其上传到
ADO NET Destination
中的表中。如果目标表中的所有列都是varchar,那么我就可以将其保存在物理表中,并运行一些tsql脚本进行清理。但我不想那样做


我也可以在创建/删除临时表之前和之后运行tsql脚本,但是如果有办法使用#temp或@table来创建/删除临时表,那就太好了。

如果这是一个您不止一次执行的操作,标准的ETL实践是拥有一个持久的all-VARCHAR临时表,作为第一步加载文件

然后检查数据是否适合添加到生产表中

这样做的目的如下:

  • 确保不良数据不会出现在生产表中,因为它可能会破坏数据
  • 允许ETL过程标准化和可重复。您不再需要记住上次他们是如何破坏数据的,只需将数据添加到从暂存表升级到生产表的逻辑中,然后忘记它
  • 允许将流程轻松过渡到其他人,并提供适当的源代码控制机会

  • 我想不出使用temp table/table变量有什么好处,除非您无法创建物理表。

    为什么不将其持久化到varchar表?这是很普遍的做法。