小编Val*_*rie的帖子

SSIS 2012 元数据在重新部署时不会刷新

我有三个系统:DEV、UAT、PROD,都运行 SQL 2012 Enterprise。我有现有的包可以命中这些系统上的对象。每次我必须进行影响元数据的更改时,仅更新目标系统上的对象,然后更新指向系统的 SSIS 包,然后在系统上重新部署该包是不够的。即使在重新部署之前会更新包以处理新的元数据,我仍然必须进入每个系统并再次更新包,然后才能识别新的元数据。

这种行为对我来说是新的。在 BIDS 2008 中,一个系统上元数据的刷新将持续到它部署到的任何系统。现在,如果我在部署之前更改连接管理器,我必须返回并重新刷新元数据,然后才能发送它。似乎每个连接设置的元数据被保留,并且在更新包时不会更新。

一个例子,我可以清楚地说明这一点:我在所有三个系统上的目标表中添加了一列。我在指向 DEV 时更新包以反映更改,然后进行部署。到现在为止还挺好。然后我更新连接管理器以指向 UAT,并在那里部署更改的包。在这一点上,我希望不需要刷新元数据,因为 UAT 中目标表的模式与 DEV 中的模式相匹配,包在上次刷新时指向该模式。但是,该包就像未更新一样,需要在明确指向该系统的同时刷新其元数据才能工作。

为了解决这个问题,我在连接管理器上添加了一个由 System::MachineName 确定的 ServerName 属性的表达式,认为问题是在我正在开发的机器上更改连接管理器会立即触发检查那里的对象,即使延迟验证打开。没有这样的运气;它仍然显示相同的行为。

我在网上找不到太多关于此的信息,以确定它是 SSDT 2012 的预期行为还是我做错的事情或真正的错误。

任何人都对这个问题有任何见解?

sql-server ssis sql-server-2012 ssdt

6
推荐指数
2
解决办法
4984
查看次数

获取表中的每个状态更改

我有一个表格,其中包含每个项目的状态更改。项目可以多次进入和退出状态。

ItemTable(ItemId int、Status varchar(50)、DateOfChange 日期)

我需要拉出每次更改的日期。但是,由于可以为每个项目重复状态,我不能只执行 min(DateOfChange) 并找到出现的次数。

这是在 OLAP 环境中,用于提取此数据的子查询正在降低性能。

有没有办法通过分区/行号函数来提取这些东西?或者其他在 OLAP 中表现更好的东西?(这是在 SQL 2008 中。)

performance sql-server t-sql gaps-and-islands query-performance

3
推荐指数
1
解决办法
3847
查看次数

SQL Server 2008 R2 中的偷偷回滚

是否可以在 SQL Server 2008 R2 中回滚一整套已提交的事务而无需任何通知或日志记录?

本周末,我们在 HA 集群 SQL Server 2008 R2 环境中显然回滚了一组数据。数据存在,现在不存在。SQL Server 错误日志中没有任何内容,群集日志中也没有任何内容。最初加载数据的 SQL Server 代理作业成功运行(包括从进程本身发送的进度电子邮件)。

唯一没有回滚的是批量插入的数据。数据库设置为完全恢复,因此批量插入的数据也应该回滚,对吗?

很抱歉缺乏细节,但我真的很难过。甚至想不出还有什么地方可以看。

sql-server sql-server-2008-r2 transaction-log

1
推荐指数
1
解决办法
707
查看次数