在SSIS中等效于'SELECT * INTO'

时间:2018-07-24 09:42:24

标签: sql-server visual-studio ssis odata

我正在构建一个SSIS package,需要从其中转移软件包 将odata source中的一些表插入sql server中。

到目前为止,我已经从我从sql server读取的表中对odata Source进行了“插入”查询。因为表的数量是10+,所以我可以通过一种方法“选择”查询来更快地在SSIS中传输这些表?

1 个答案:

答案 0 :(得分:1)

SSIS没有内置操作可基于数据集在目的地上创建表,SELECT ... INTO就是这样。

也不容易做到这一点,SSIS主要基于静态元数据ETL,即在具有一致结构和数据类型的不同源和目标之间执行操作。您可以使用自定义脚本来实现所需的功能,但这完全在SSIS之外。

如果您已经知道要插入的数据,请首先创建目标表(使用CREATE TABLE),然后使用SSIS映射相应的列。如果目标表是动态的,那么您将很难使用常规的SSIS操作来匹配每个表的元数据,因为这是在设计时设置的。

如果问题不是表的列数据类型,而是操作的速度(SELECT ... INTO的日志记录最少),则最快的选择是在操作上使用批量插入操作使用SQL Server时的目标组件。它比常规插入要快,但通常比直接从SQL执行SELECT ... INTO要慢。