【问题标题】:Import Data from Excel using SSIS使用 SSIS 从 Excel 导入数据
【发布时间】:2015-06-18 19:15:31
【问题描述】:

我有一个包含 9 个工作表的 Excel 数据源。如果我设置连接管理器的RetainSameConnetion = True,导入需要几秒钟。如果我将该属性设置为False,则大约需要一分钟。到目前为止,一切都很好。但是,在包的最后,我想将 Excel 文件移动到存档文件夹。如果RetainSameConnection 设置为True,则文件被锁定并且无法移动。

脚本中有没有办法释放连接,以便文件可以在最后移动。我试过 DTS.Connections("xxxx").ReleaseConnection(y) 但这似乎不起作用,无论我将 y 的值设置为什么。

【问题讨论】:

    标签: sql-server import ssis


    【解决方案1】:

    没有内置的方法,因为 SSIS 旨在将作业的不同方面分解为多个包,因此不需要在创建它的包中删除连接。

    这是基于项目部署模型的,并且是 Microsoft 喜欢说的设计。

    现在这是一种非常老套的方法,但由于没有其他人尝试这样做,所以我会试一试。

    您需要创建一个虚拟变量(最好是布尔值)。

    将连接管理器的 retainsameconnection 属性表达式设置为计算结果为 true 的表达式。 (变量 == 真)

    在您需要将文件移动到存档之前添加一个脚本任务,并将布尔变量的值更改为与默认值相反的值。

    在您的脚本任务完成后,您的 retainsameconnection 现在应该被评估为 false,并且连接应该断开。

    如果一切顺利,连接管理器应该不再希望在整个包执行过程中保留该连接。

    不确定您正在运行的投标或 SSDT 版本是否允许对该属性进行实时评估,但值得一试。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-26
      • 2022-11-11
      相关资源
      最近更新 更多