如何通过编程方式更改SSIS OleDB源的命令超时时间?

3
在我们最近接到的一个相当大的项目中,我们收到了请求,在正常工作时间执行特定的SSIS包。然而,尽管在夜间该包可以花费自己所需的时间,但在工作时间期间,当源查询超过给定时间时,立即停止执行是最重要的。
我知道OleDB源有一个可以设置的属性,但是否有任何通过编程/表达式设置它的方法?应该有一种方法来参数化此超时时间,不是吗?
感谢您的帮助。

你在OLEDB SRC的自定义属性下有CommandTimeout。这是唯一可以设置的地方。否则,您需要修改数据库设置。 - SqlKindaGuy
2个回答

2
您不能使用表达式来完成此操作-请参考Microsoft Doc以获取数据流可用属性的相关信息,其中没有任何OLE DB来源属性是公开的表达式。您可以创建另一个具有固定OLEDB Source超时的包,并在需要时启动它。如果您真的想参数化它,则可以使用BIML生成带有所需值的包,在生成时提供;但是您无法在运行时灵活更改它。

这个方法可能适用于SQL任务,但是我在DataFlows的OleDB源组件中看不到相应的属性/表达式选项... - Tyron78
@Tyron78,根据MS Docs的说明,你无法使用表达式来实现这个。如果你真的想将超时时间作为参数暴露出来,可以尝试使用BIML生成包,并在生成时指定超时值。 - Ferdipux
@Tyron78,唯一的方法是使用BIML生成包,我认为这是你能得到的唯一答案。 - Hadi
谢谢。是的,我已经有一些Biml脚本并重新生成了包。但是,我认为通过表达式进行修改会更好。也许稍后会添加它。:-D - Tyron78

0

这就是你要找的东西。

enter image description here

这使您能够设置查询超时时间。


谢谢,但正如我在问题中提到的那样:我知道OleDB源有一个可以设置的属性,但是否有任何通过编程/表达式来设置它的方法? - Tyron78
没有的 :) 如果你想要调整超时时间,你必须在你的数据库上进行设置。 - SqlKindaGuy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接