SQL Server 2008+TSQL自动增量更新
我有一个自动增量列的表,我想增加不仅在插入而且更新。此列不是主键,但也有一个主键,它是通过newid()自动创建的GUID。
据我所知,有两种方法可以做到这一点。
1.)删除现有的行,并插入一个新的行与indentical值(加上任何更新)。
或
2)更新现有行并使用以下方法来获得“下一个”身份值:
IDENT_CURRENT('myTable') + IDENT_INCR('myTable')
在任何情况下,我被迫允许身份插入。 (使用选项1,因为表的主键需要保持不变,并使用选项2,因为我正在使用特定值更新自动增量列。)我不确定锁定/性能的后果这是。
对此有何看法?有更好的方法吗?这里的目标是每当插入或更新行时在列中保持一组不断增加的整数值。
尽管您可以“获取”特定表格的下一个Identity值,但通常不会帮助您,除了测试该值。尤其是,您无法将现有行的标识值更新为应该是“下一个”的标识值。您可以设法使用应用程序逻辑来序列化一个主键,但如果连续值由于性能命中而绝对需要,我只会这样做。如果感兴趣,我会在我的答案中添加一些内容。 – hardmath