SqlServer触发器自动生成编号(标识符+年月日+三位流水号)

编号示例:标识符+年月日+三位流水号(PEPS20211011001)

CREATE TRIGGER Order_Review_Stream
   ON  reviewnews
   After INSERT 
AS 
BEGIN 
    declare @review_id int,@review_stream varchar(15),@temppid varchar(15) 
    --从Inserted表中取得主键的自动编号 
    select @review_id=review_id from Inserted 
    --获取当前日期格式为"PEPS20211011" 
    select @review_stream = 'PEPS'+Convert(varchar(8),GetDate(),112); 
    --获取最后一个review_id
    select top 1 @temppid=review_stream from reviewnews where review_stream like @review_stream+'%' order by review_id desc 
    if (@temppid is null) 
        begin 
            --如果今天没有插入过数据,则初始值为'PEPS20211011001' 
            set @review_stream = @review_stream + '001' 
        end 
    else 
        begin 
            --否则从最后一个日期取得编号,并末尾加上1,组成新编号 
            set @review_stream = @review_stream + right(cast(power(10,3) as varchar)+(convert(int,substring(@temppid,14,3))+1),3) 
        end

    --更新编号 
    update reviewnews set review_stream=@review_stream where review_id = @review_id
END
  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值