生成每年重置的序列号

我想用一些每年重置一次的序列号更新插入的记录(从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()) 

您是否知道如何改进上面显示的解决方案?还是有其他更好的解决方案?

wugongjing 回答:生成每年重置的序列号

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3143722.html

大家都在问