Val*_*rie 6 sql-server ssis sql-server-2012 ssdt
我有三个系统:DEV、UAT、PROD,都运行 SQL 2012 Enterprise。我有现有的包可以命中这些系统上的对象。每次我必须进行影响元数据的更改时,仅更新目标系统上的对象,然后更新指向系统的 SSIS 包,然后在系统上重新部署该包是不够的。即使在重新部署之前会更新包以处理新的元数据,我仍然必须进入每个系统并再次更新包,然后才能识别新的元数据。
这种行为对我来说是新的。在 BIDS 2008 中,一个系统上元数据的刷新将持续到它部署到的任何系统。现在,如果我在部署之前更改连接管理器,我必须返回并重新刷新元数据,然后才能发送它。似乎每个连接设置的元数据被保留,并且在更新包时不会更新。
一个例子,我可以清楚地说明这一点:我在所有三个系统上的目标表中添加了一列。我在指向 DEV 时更新包以反映更改,然后进行部署。到现在为止还挺好。然后我更新连接管理器以指向 UAT,并在那里部署更改的包。在这一点上,我希望不需要刷新元数据,因为 UAT 中目标表的模式与 DEV 中的模式相匹配,包在上次刷新时指向该模式。但是,该包就像未更新一样,需要在明确指向该系统的同时刷新其元数据才能工作。
为了解决这个问题,我在连接管理器上添加了一个由 System::MachineName 确定的 ServerName 属性的表达式,认为问题是在我正在开发的机器上更改连接管理器会立即触发检查那里的对象,即使延迟验证打开。没有这样的运气;它仍然显示相同的行为。
我在网上找不到太多关于此的信息,以确定它是 SSDT 2012 的预期行为还是我做错的事情或真正的错误。
任何人都对这个问题有任何见解?
| 归档时间: |
|
| 查看次数: |
4984 次 |
| 最近记录: |