gpt4 book ai didi

sql - 每年重置自动增量(身份)

转载 作者:行者123 更新时间:2023-12-04 23:52:14 27 4
gpt4 key购买 nike

我正在使用SQL Server 2008 R2,并且想创建一个触发器。

对于每个添加(仅添加),将像这样更新一列:

ABC-CurrentYear-AutoIncrementCode


例子:

ABC-2013-00001 


要么

ABC-2013-1


ABC永远不会改变

可以用 YEAR(GetDate())添加当前年份,但是对于最后一部分,我遇到了困难:如何获取最后输入的号码以使最后输入的数值加1?

第二个问题:

在2014年,自动递增计数器应重置为1,与2015年相同,以此类推...

最佳答案

您可以像这样计算新值:

SELECT 'ABC-' + 
CAST(YEAR(GETDATE()) AS VARCHAR(4)) + '-' +
RIGHT('00000' + CAST(ISNULL(MAX(CAST(REPLACE(YourColumnName, 'ABC-' + CAST(YEAR(GETDATE()) AS VARCHAR(4)) + '-', '') AS INTEGER)), 0) + 1 AS VARCHAR(5)), 5)
FROM YourTable
WHERE YourColumnName LIKE 'ABC-' + CAST(YEAR(GETDATE()) AS VARCHAR(4)) +'%'


字符串连接的最后一部分特别复杂:


RIGHT用于添加前导零
ISNULL每年用于重置计数器

关于sql - 每年重置自动增量(身份),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16692644/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com