[转]SSIS高级转换任务—在Package中是用临时表是需要设置RetainSameConnection属性
2014-03-06 14:35
399 查看
本文转自:/article/4751476.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
图6-1
每一个task都回单独地使用这个连接,但是临时表只能在一个连接中有效,连接关闭时临时表也就不存在了。将这个属性修改为true,所有的task都会使用同一个连接,这样就不会出错了。在循环任务中需要连接数据库时这个属性设置也很重要,它将避免多次打开,关闭连接。
这个和我们在写sql语句的时候使用临时表是一样的,所以说只要我们足够的熟悉SQL Server中的概念,SSIS也就很容易上手了。
在上一个导入列这个例子中我们创建一个实际的表来存储文件路径,在生产环境中我们可能不会创建一个实际的物理表来存储这些信息,而是创建临时表。这里有一个小小的技巧,在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
图6-1
每一个task都回单独地使用这个连接,但是临时表只能在一个连接中有效,连接关闭时临时表也就不存在了。将这个属性修改为true,所有的task都会使用同一个连接,这样就不会出错了。在循环任务中需要连接数据库时这个属性设置也很重要,它将避免多次打开,关闭连接。
这个和我们在写sql语句的时候使用临时表是一样的,所以说只要我们足够的熟悉SQL Server中的概念,SSIS也就很容易上手了。
相关文章推荐
- SSIS高级转换任务—在Package中是用临时表是需要设置RetainSameConnection属性
- Package的Transaction处理之一:使用Connetion的属性RetainSameConnection
- SSIS: RetainSameConnection 属性。
- 使用Connetion的属性RetainSameConnection
- SSIS高级转换任务—行计数
- SSIS高级转换任务—执行SQL语句
- SSIS高级转换任务—导入列
- SSIS高级转换任务—渐变维度(Slowly Changing Dimension)
- [转]SSIS高级转换任务—行计数
- SSIS高级转换任务—导入列
- SSIS高级转换任务—OLE DB命令
- SSIS高级转换任务—关键词抽取
- SSIS高级转换任务—模糊分组
- SSIS高级转换任务—OLE DB命令
- - 高级篇:二,IL设置静态属性,字段和类型转换
- SSIS高级转换任务—关键词查找
- SSIS高级转换任务—导出列
- SSIS高级转换任务—模糊查找
- 静态属性或字段不再使用时,需要把其引用设置为null
- ListPreference需要设置两个属性:android:entries和android:entryValues