我想知道如何在 SQL Server 2008 中最好地实现以下用于行版本控制的简单策略。我的想法是将 primary_key 字段复制到另一列(在本例中为 originationg_id)以便将多个版本组合在一起/同一对象的修订版。
当我插入初始“version1”行时,我想将 originating_id 列默认为 primary_key 的列。这是由数据库自动生成的,所以我不确定如何去做。后续插入将已经知道为此字段提供的值。
例子:
primary_key, originating_id, date_created, some_value
---------------------------------------------------------------------
1 1 13/12/2010 version1 of object A...
2 1 14/12/2010 version2 of object A...
3 1 15/12/2010 version3 of object A...
4 4 15/12/2010 version1 of object B...
谢谢。
最佳答案
在我看来,这是一个与实际数据一起存储的表格,您可以根据控制审计的方式使用它做一些事情。
- 您可以在插入表后使用 SELECT SCOPE_IDENTITY() 获取标识值,然后使用该值插入到报告表中
- 您可以在“插入后”使用触发器,然后您就可以访问主键。
如果您出于某种奇怪的原因在同一个表内执行此操作,我建议您可能会考虑使用不同的策略,因为很难查询此长期术语的“最新”版本。
关于SQL Server 2008 - 将另一列的默认值绑定(bind)到主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4429495/