首页 > 其他 > 详细

[转]SSIS高级转换任务—在Package中是用临时表是需要设置RetainSameConnection属性

时间:2014-03-07 17:07:54      阅读:405      评论:0      收藏:0      [点我收藏+]

本文转自:http://www.cnblogs.com/tylerdonet/archive/2011/05/20/2052306.html

在上一个导入列这个例子中我们创建一个实际的表来存储文件路径,在生产环境中我们可能不会创建一个实际的物理表来存储这些信息,而是创建临时表。这里有一个小小的技巧,在Control Flow中拖放两个Execute SQL task,一个创建临时表,另一个销毁临时表,执行这个package,会遇到一个错误,在Progress中提示信息显示不存在这个临时表。错误信息如下:

Error: 0xC002F210 at Execute SQL Task 1, Execute SQL Task: Executing the query "drop table #Table1" failed with the following error: "Cannot drop the table ‘#Table1‘, because it does not exist or you do not have permission.". Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly.

Task failed: Execute SQL Task 1

很明显即使使用相同的连接对象,这两个Execute SQL任务没有使用相同的连接,查看这个OLE DB Connection的属性,会注意到有一个属性RegainSameConnection,默认的值是false。呵呵,这里要设置成true才能满足需求的。如图6-1

bubuko.com,布布扣

图6-1

每一个task都回单独地使用这个连接,但是临时表只能在一个连接中有效,连接关闭时临时表也就不存在了。将这个属性修改为true,所有的task都会使用同一个连接,这样就不会出错了。在循环任务中需要连接数据库时这个属性设置也很重要,它将避免多次打开,关闭连接。

这个和我们在写sql语句的时候使用临时表是一样的,所以说只要我们足够的熟悉SQL Server中的概念,SSIS也就很容易上手了。

[转]SSIS高级转换任务—在Package中是用临时表是需要设置RetainSameConnection属性,布布扣,bubuko.com

[转]SSIS高级转换任务—在Package中是用临时表是需要设置RetainSameConnection属性

原文:http://www.cnblogs.com/freeliver54/p/3584500.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!