如何在系统版本时态表中保留修改器 ID?

How to Keep Modifier ID in System Versioned Temporal Tables?

我在 sql 服务器 2016 中有一个系统版本 table。我想在用户执行 时将修改器 ID 存储在其时间(历史)table 中]删除更新 对 table 的操作。

sql 服务器 2016 是否有任何内置解决方案来做到这一点?

不,这是不可能的,因为时间 tables 和它们的历史 tables 必须具有完全相同的架构,即

  • 列数
  • 列名称
  • 数据类型
  • 甚至列的顺序

因此,除非您在 Temporal tables 本身中捕获修改器的 ID,否则您无法将此信息添加到历史记录 table。

如何在 Temporal table 本身中捕获此修改器的 ID 信息,这可以在应用程序层上处理。

您可以使用审核

Introduction to sql server 2008 audit