zoukankan      html  css  js  c++  java
  • SSIS高级转换任务—在Package中是用临时表是需要设置RetainSameConnection属性

    在上一个导入列这个例子中我们创建一个实际的表来存储文件路径,在生产环境中我们可能不会创建一个实际的物理表来存储这些信息,而是创建临时表。这里有一个小小的技巧,在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也就很容易上手了。

    作者:Tyler Ning
    出处:http://www.cnblogs.com/tylerdonet/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,如有问题,请微信联系冬天里的一把火

  • 相关阅读:
    nodejs 获取客户端 ip 地址
    如何使用 nvm-windows 管理 nodejs 版本
    redis 环境搭建
    利用 ssh 传输文件
    如何在 Centos7 中安装 gcc
    如何在 Centos7 中安装 nginx
    django迁移model到别的app中
    ssl生成证书
    pip安装mysql报错 ld: library not found for -lssl
    mac重置蓝牙模块
  • 原文地址:https://www.cnblogs.com/tylerdonet/p/2052306.html
Copyright © 2011-2022 走看看