我想用一些每年重置一次的序列号更新插入的记录(从weab应用程序)。格式应为1 / 2019、2 / 2019、1 / 2020等。
我制定的第一个解决方案是在插入操作上使用触发器。
CREATE TRIGGER GenerateactivityNumber
ON dbo.activity
AFTER INSERT
AS
BEGIN
update activity set activity.activityNumber = concat(NEXT VALUE FOR activityCounter,'/',YEAR(GETDATE())) WHERE activity.id = (select Id from inserted)
END
看起来不错,但是除了使用每年运行的作业之外,我看不到任何其他重置顺序的方法。 第二个想法很简单,但不是很安全(有重复的风险)-计算当年的记录并增加值(仍在触发器内)
select MAX(id)+1 from activity where YEAR(CreatedDate) = YEAR(GETDATE())
您是否知道如何改进上面显示的解决方案?还是有其他更好的解决方案?