zoukankan      html  css  js  c++  java
  • 通过SQL自动添加流水号

    通过SQL自动添加流水号

    项目中往往有一些单据流水号或者流程流水号是希望通过新增一条记录后自动产生一个编号的,比如新增一条流程就自动根据当前日期自动添加该流程的流程流水号,下面介绍两种不同类型流水号通过SQL自动产生的方法。
    流水号格式: www.2cto.com

    第一种(数值类型):日期+流水号,比如“201104190001”-->"201104190002";

    第二种(文本类型):前缀+日期+流水号,比如“WT201104190001”-->"WT201104190002"。

    不论哪种情况,流水号的生成原则都是一样的,流水号的产生都需要根据当前日期产生,新增的一条记录的流水号为当前日期下所有记录中流水号最大那条加1得来。
    www.2cto.com
    一、数据库中添加一个表:TestNo

    列名 数据类型 说明

    ID uniqueidentifier 主键

    No bigint 流水号字段,不过是纯数字型的流水号,这个为本例子的第一种情况,流水号可以为纯数字

    DT datetime 新增一条记录的当前时间,相信每新增一条记录都会记录这次操作的当前时间的。

    CharNo varchar(50) 流水号字段,不过是可以有字符的流水号,这个为本例子的第二种情况。

    二、SQL代码
    ------
    --自动流水号为纯数字的情况,如 201104190005
    ------
    declare
    @x int,
    @y char(8)
    select @x= COUNT(no) from TestNo where CAST(DT as date)=CAST(GETDATE() as date)
    if(@x=0)
    begin
    select @y=convert(char(8),getdate(),112)
    insert TestNo(No,DT) values(
    @y+'0001'
    ,GETDATE())
    end
    else
    insert TestNo(No,DT) values(
    (select MAX(No)+1 from TestNo where CAST(DT as date)=CAST(GETDATE() as date))
    ,GETDATE())
    select * from TestNo

    ------
    --自动流水号为字符的情况,如 WT201104190005
    ------
    declare
    @x1 int,
    @y1 char(8)
    select @x1= COUNT(CharNo) from TestNo where CAST(DT as date)=CAST(GETDATE() as date)
    if(@x1=0)
    begin
    select @y1=convert(char(8),getdate(),112)
    insert TestNo(CharNo,DT) values(
    'WT'+@y1+'0001'
    ,GETDATE())
    end
    else
    begin
    insert TestNo(CharNo,DT) values(
    'WT'+cast((select MAX(CAST( SUBSTRING(charno,3,12) as bigint))+1 from TestNo where CAST(DT as date)=CAST(GETDATE() as date))as varchar(50))
    ,GETDATE())
    end
    select * from TestNo

  • 相关阅读:
    SpringCloud : yml文件配置 获取系统环境变量的值
    SpringCloud : 多个 @FeignClient 注解 value 设置为同一个应用的解决方案
    SpringCloud : Feign 不捆绑远程应用名称, 实现服务应用名称传入,调用通用自动化
    SpringCloud : Feign 使用 FastJson 解析数据
    Mybatis中在log日志或控制台打印执行的sql
    iOS 基于 itemServices 进行本地安装 ipa 应用安装包
    MySQL5.5 数据热备份
    如何在 Fiddler Script 中 自定义 修改 Request 、 Response
    Dubbo 分布式 日志 追踪
    shell脚本并发执行
  • 原文地址:https://www.cnblogs.com/chenghu/p/5631995.html
Copyright © 2011-2022 走看看