MS SQL Server 2005-如何自动增加字段(不是主键)
时间:2020-03-06 14:20:47 来源:igfitidea点击:
我想在名为" tb_users"的表中任何行中的任何字段被更新时,自动对名为" incrementID"的字段进行自动递增。
目前,我正在通过sql update语句来执行此操作。
即" UPDATE tb_users设置名称= @名称,增量ID =增量ID +1 ..... WHERE ID = @id;
我想知道如何自动执行此操作。例如,通过更改sql server处理字段类型的方式,例如'Identity'的增量设置。
在更新行之前,我希望检查要更新的对象的增量ID是否不同于数据库行的增量ID。
任何帮助uchos赞赏。
谢谢
解决方案
我们可以为此使用触发器(如果我已正确阅读了信息,并且我们希望每次更新该行时该值都增加)。
表中的列可以具有"身份规范"集。只需在属性窗口中展开节点并填写详细信息("身份","增量","种子")即可。
IDENTITYCOL关键字可用于对身份规范进行操作。
如果我们只需要知道它已更改,而不是专门知道它是新版本或者已进行了多少更改,请考虑使用" rowversion"列。
这个触发器应该可以解决这个问题:
create trigger update_increment for update as if not update(incrementID) UPDATE tb_users SET incrementID = incrementID + 1 from inserted WHERE tb_users.id = inserted.id