使用SSIS从Excel导入数据

时间:2015-04-13 13:00:15

标签: sql-server import ssis

我有一个包含9张的Excel数据源。如果我设置了连接管理器RetainSameConnetion = True,则导入需要几秒钟。如果我将属性设置为False则需要大约一分钟。到现在为止还挺好。但是,在包的末尾,我想将Excel文件移动到存档文件夹。如果RetainSameConnection设置为True,则文件已被锁定且无法移动。

脚本中是否有一种方法可以释放连接,以便最后可以移动文件。我试过了DTS.Connections("xxxx").ReleaseConnection(y),但这似乎没有用,无论我将y的值设置为。

1 个答案:

答案 0 :(得分:0)

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

这是基于Project部署模型,并且是微软喜欢说的设计。

现在这是一个真正的hacky方式,但由于没有其他人正在尝试它,我会试一试。

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

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

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

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

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

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