SSIS单包部署操作是否会删除服务器上不在部署分支的其他现有包?
SSIS 项目部署模式单包部署的行为说明
核心结论
你遇到的包删除现象是SSIS项目部署模式的标准逻辑,操作误区是误以为右键单包生成的.ispac仅包含单个包:
- 你在VS中右键单个包选择「Deploy Package」直接部署到目标SQL Server时,确实只会更新选中的单个包,不会修改项目内其他包
- 但该操作生成的
.ispac是完整的项目部署快照,包含当前VS项目目录下的所有包,和你是否选中单个包无关 - 直接运行
.ispac部署到SSIS Catalog时,默认会将目标项目的包列表与ispac内的包列表完全对齐:ispac内不存在但服务器上存在的包会被自动删除,ispac内存在的包会覆盖服务器上的对应版本,不存在的会新增。你从缺少master分支新增包的开发分支生成ispac部署,自然会删除这些不在开发分支的包。
正确的单包部署操作方案
如果要实现仅部署单个包、不影响其他现有包的需求,优先选择以下两种操作方式:
- 方法1:在SSMS中连接生产SSIS Catalog,定位到对应项目后右键选择「导入包」,单独上传需要部署的
.dtsx包,该操作只会新增/覆盖导入的单个包,不会修改项目内其他资源 - 方法2:如果必须使用
.ispac部署,需要先将当前生产环境的SSIS项目完整导出为.ispac,替换其中需要更新的单个包后,再用修改后的ispac执行部署,避免出现包列表不一致导致的删除问题
内容的提问来源于stack exchange,提问作者LarryG
相关产品推荐
相关产品推荐

