久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

在僅附加表中設置版本列

Setting version column in append only table(在僅附加表中設置版本列)
本文介紹了在僅附加表中設置版本列的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我們有一個表來存儲記錄的版本.

We have a table that will store versions of records.

列是:

Id (Guid)
VersionNumber (int)
Title (nvarchar)
Description (nvarchar)
etc...

保存項目將在表中插入一個新行,該行具有相同的 Id 和遞增的 VersionNumber.

Saving an item will insert a new row into the table with the same Id and an incremented VersionNumber.

我不確定如何最好地生成連續的 VersionNumber 值.我最初的想法是:

I am not sure how is best to generate the sequential VersionNumber values. My initial thought is to:

SELECT @NewVersionNumber = MAX(VersionNumber) + 1
FROM VersionTable
WHERE Id = @ObjectId

然后在我的插入語句中使用@NewVersionNumber.

And then use the the @NewVersionNumber in my insert statement.

如果我使用這種方法,是否需要將我的事務設置為可序列化以避免并發問題?我不想最終得到相同 ID 的重復版本號.

If I use this method do I need set my transaction as serializable to avoid concurrency issues? I don't want to end up with duplicate VersionNumbers for the same Id.

有沒有更好的方法來做到這一點,而不是讓我使用可序列化的事務?

Is there a better way to do this that doesn't make me use serializable transactions?

推薦答案

為了避免并發問題(或在您的特定情況下重復插入),您可以創建一個復合鍵作為表的主鍵,由 ID 組成和 VersionNumber 列.然后,這將對鍵列強制執行唯一約束.

In order to avoid concurrency issues (or in your specific case duplicate inserts) you could create a Compound Key as the Primary Key for your table, consisting of the ID and VersionNumber columns. This would then enforce a unique constraint on the key column.

隨后,您的插入例程/邏輯可以設計為處理或捕獲由于重復鍵導致的插入錯誤,然后簡單地重新發出插入過程.

Subsequently your insert routine/logic can be devised to handle or rather CATCH an insert error due to a duplicate key and then simply re-issue the insert process.

還值得一提的是,除非您特別需要使用 GUID,即因為使用 SQL Server 復制或多個數據源,否則您應該考慮使用替代數據類型,例如 BIGINT.

It may also be worth mentioning that unless you specifically need to use a GUID i.e. because of working with SQL Server Replication or multiple data sources, that you should consider using an alternative data type such as BIGINT.

這篇關于在僅附加表中設置版本列的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

Converting Every Child Tags in to a Single Column with multiple Delimiters -SQL Server (3)(將每個子標記轉換為具有多個分隔符的單列-SQL Server (3))
How can I create a view from more than one table?(如何從多個表創建視圖?)
Create calculated value based on calculated value inside previous row(根據前一行內的計算值創建計算值)
How do I stack the first two columns of a table into a single column, but also pair third column with the first column only?(如何將表格的前兩列堆疊成一列,但也僅將第三列與第一列配對?) - IT屋-程序員軟件開發技
Recursive t-sql query(遞歸 t-sql 查詢)
Convert Month Name to Date / Month Number (Combinations of Questions amp; Answers)(將月份名稱轉換為日期/月份編號(問題和答案的組合))
主站蜘蛛池模板: 欧美精品片 | 婷婷综合久久 | 奇米久久 | 久久久久一区二区三区 | 亚洲一二三区免费 | 国产精品色 | 亚洲一区二区三区免费在线观看 | 免费看国产a | 日韩一区不卡 | 欧美日韩亚洲系列 | 亚洲国产精品人人爽夜夜爽 | 伊人婷婷 | 久久av一区| 欧美自拍第一页 | 草草草影院 | 中文字幕一区二区三区不卡在线 | 狠狠做深爱婷婷综合一区 | 国产午夜精品一区二区三区四区 | 亚洲国产一区视频 | 亚洲一卡二卡 | 国产91久久久久蜜臀青青天草二 | 1级黄色大片| 天天操天天射综合 | 欧美一区二区二区 | 人人爽日日躁夜夜躁尤物 | 亚洲精品在线免费播放 | 夏同学福利网 | 第四色狠狠 | 久久久精品一区二区三区 | 成人在线观看免费视频 | 日韩综合网 | 国产精品久久免费观看 | www.888www看片 | 性一交一乱一伦视频免费观看 | 人妖一区 | 一区二区三区视频在线 | 日韩一级免费电影 | 一二三在线视频 | 一区二区三区四区电影 | 中文字幕第90页 | 91精品欧美久久久久久久 |