我有一个SSIS项目,其中包含50个左右的软件包。主程序包按正确的顺序执行子程序包。将项目部署到SSIS目录,并通过具有某些控制逻辑和错误处理的存储过程来调用执行。使用从IS目录中的环境变量设置传入的值对连接管理器进行参数化。参数化了连接管理器的ServerName和InitialCatalog属性,但未设置ConnectionString。在所有软件包上,DelayValidation均设置为False。
到目前为止很好。这已经在开发,测试和生产环境中工作了一段时间。当我部署新版本的项目时,我想在SSMS中验证该项目,以确保实时环境中的所有数据结构均与软件包所期望的数据结构相匹配。
我现在在测试环境中出现验证失败,我相信是因为VS调试环境中上次更新的ConnectionString与测试系统环境变量中指定的ServerName和InitialCatalog不同步。程序包中的ConnectionString指向的服务器与实时服务器相比具有架构差异。因此,我的问题是:1.是在SSMS驱动的验证期间重建ConnectionString字符串,还是仅在执行程序包期间重建它?2.如果我在此软件包上将DelayValidation设置为True,那么它将在安装到目录中时在验证过程中得到验证,还是仅在运行时进行验证?
我想我是在树错误的树上,将深入研究我的包中引用的数据库的状态。
我的帐户似乎不允许我回答问题:-(如果其他人可以提出答案(感谢收到并提出任何支持,则可以关闭该问题。)>
我有一个SSIS项目,其中包含50个左右的软件包。主程序包按正确的顺序执行子程序包。该项目被部署到SSIS目录中,并由存储的...
Connection Manager
属性在单个程序包得到验证之前已得到完全解析。如@Ferdipux所说,您可以在执行时看到属性值(如果在Context Depth = 2
报告中按Error Context
进行过滤),您将看到ConnectionString
属性的值已从ServerName
和InitialCatalog
正确解析]变量在项目的环境变量中设置。我认为SSIS
没有问题,程序包中引用的数据库很可能仍与程序包元数据不同步。