SQL Server 2008+TSQL自動增量更新
我有一個自動增量列的表,我想增加不僅在插入而且更新。此列不是主鍵,但也有一個主鍵,它是通過newid()自動創建的GUID。
據我所知,有兩種方法可以做到這一點。
1.)刪除現有的行,並插入一個新的行與indentical值(加上任何更新)。
或
2)更新現有行並使用以下方法來獲得「下一個」身份值:
IDENT_CURRENT('myTable') + IDENT_INCR('myTable')
在任何情況下,我被迫允許身份插入。 (使用選項1,因爲表的主鍵需要保持不變,並使用選項2,因爲我正在使用特定值更新自動增量列。)我不確定鎖定/性能的後果這是。
對此有何看法?有更好的方法嗎?這裏的目標是每當插入或更新行時在列中保持一組不斷增加的整數值。
儘管您可以「獲取」特定表格的下一個Identity值,但通常不會幫助您,除了測試該值。尤其是,您無法將現有行的標識值更新爲應該是「下一個」的標識值。您可以設法使用應用程序邏輯來序列化一個主鍵,但如果連續值由於性能命中而絕對需要,我只會這樣做。如果感興趣,我會在我的答案中添加一些內容。 – hardmath