很遗憾,我们没有对此MSDN文章中提到的SQL Server进行必需的DCOM访问,但我们对SQL Server实例拥有完全的管理权限。
因此,我们可以成功地将程序包部署到服务器并使用SQL Server代理程序运行它,但我无法解决如何从服务器中删除程序包的问题。
我唯一能想到的就是从MSDB数据库中的dbo.sysdtspackages90表中删除该行,但这对我来说似乎有点极端(如果不是非常危险!)。
问题在于我们的服务器管理是外包的,我们必须努力争取获得所需的访问权限 - 它是否值得(可能是1到2个月)代价高昂的战斗,还是我可以通过其他方式得到我们需要的东西?
答案 0 :(得分:3)
我认为如果您觉得删除该行不安全,还可以调用存储过程sp_dts_deletepackage
。首先调用sp_dts_getfolder
获取文件夹ID,然后将此ID传递给sp_dts_deletepackage
。
另一种方法是配置本地SSIS服务,使其具有此远程SQL Server存储的文件夹(查看MSDN以进行SSIS服务配置编辑)。然后,当您连接到本地SSIS服务时,您将看到这些远程包,并且可以使用UI进行删除。然后,该服务将连接到SQL并为您调用这些存储的过程。
答案 1 :(得分:1)
任何人的信息。
检查sp_dts_deletepackage实际执行的操作(右键单击 - 修改)显示除了一些检查(安全性)之外,它最终会执行:
DELETE FROM sysdtspackages90
WHERE
[name] = @name AND
[folderid] = @folderid AND
[packageformat] = 0
不删除或更新任何其他表