【问题标题】:SQL Server 2012: Is it possible to exempt some columns from triggering a history table update?SQL Server 2012:是否可以免除某些列触发历史表更新?
【发布时间】:2016-12-13 03:06:10
【问题描述】:

我创建了一个数据库来跟踪我公司的计算机。目标是每晚自动更新数据,并在历史记录表中跟踪任何更改。我创建了一个临时表,一切似乎都很好。但是,我想为每个计算机帐户从 AD 中免除包含 lastLogon 的列。数据的历史无关紧要,它会导致对历史表进行许多不必要的更新,我担心它会增长得太快。有什么办法可以做类似“更新历史表以更改除 m_lastLogon 之外的任何列”?

【问题讨论】:

  • AFAIK SQL Server 2012 没有对时态表的内置支持。您是如何设置的?

标签: sql sql-server-2012 temporal-database


【解决方案1】:

您能够做到这一点的唯一方法是将 m_lastlogon 信息存储在一个单独的非临时表中。但是,您会以这种方式丢失一些可能有价值的日志信息,尤其是使用模式和可能的意外损坏跟踪。您可以选择与硬件相关的简单登录日志表,从而只跟踪登录信息,减少对其余信息的不必要的多次记录。

【讨论】:

    【解决方案2】:

    根据 Borko Novakovid(SQL Server 团队的项目经理)的评论,您不能排除列。

    他的评论是

    目前我们不支持过滤掉发生在 第一列对跟踪 DW 模式不感兴趣(我猜那是 问题)。我们知道有些人需要这种能力,但是 修改 ETL 逻辑以排除这些更新也是可行的选择...

    这是网页的链接

    https://channel9.msdn.com/Shows/Data-Exposed/Temporal-in-SQL-Server-2016

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-06
      相关资源
      最近更新 更多