Sql-Server

將行版本添加到 SQL Server 表

  • August 10, 2019

我在數據庫中有一個包含三列的表:ID、Key 和 Value。每次我更新記錄時,我都有一個觸發器將這些更新發送到另一個表並在其中創建一個新記錄,誰的架構是這樣的:

RowID (new ID field for this table, identity(1,1) column)
ID (from source table)
Key (from source table)
Value (from source table)
Version (integer)

因此,每當第一個表記錄發生更改時,它都會在第二個表中創建一個新記錄。

對於具有匹配 ID 的每條記錄,我想添加一個唯一的增量版本號。如果 ID 為 1 的記錄在此表中輸入 5 次,則這些記錄的版本號應為 1、2、3、4 和 5。是通過對現有版本號的子查詢來完成此操作的方法,還是設置一個分區,還是別的什麼?

謝謝。

在這種情況下,我會儲存版本號,並使用參照完整性來確保版本號以 1 開頭並且沒有間隙。因為我使用約束,所以我確信我的解決方案適用於高並發情況。我在本文中描述了這種方法

您不能將rowversion( http://msdn.microsoft.com/en-us/library/ms182776(v=sql.105).aspx ) 列添加到您的審核表中並將這個數字儲存在另一個表中嗎?根據定義,它是連續的,儘管它不是從 1 開始的。

引用自:https://dba.stackexchange.com/questions/15647