博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
查表法按日期生成流水号的示例.sql
阅读量:7120 次
发布时间:2019-06-28

本文共 753 字,大约阅读时间需要 2 分钟。

--以下代码生成的编号长度为12,前6位为日期信息,格式为YYMMDD,后6位为流水号。
--创建得到当前日期的视图
CREATE VIEW v_GetDate
AS
SELECT dt=CONVERT(CHAR(6),GETDATE(),12)
GO
--得到新编号的函数
CREATE FUNCTION f_NextBH()
RETURNS char(12)
AS
BEGIN
    DECLARE @dt CHAR(6)
    SELECT @dt=dt FROM v_GetDate
    RETURN(
        SELECT @dt+RIGHT(1000001+ISNULL(RIGHT(MAX(BH),6),0),6)
        FROM tb WITH(XLOCK,PAGLOCK)
        WHERE BH like @dt+'%')
END
GO
--在表中应用函数
CREATE TABLE tb(
BH char(12) PRIMARY KEY DEFAULT dbo.f_NextBH(),
col int)
--插入资料
INSERT tb(col) VALUES(1)
INSERT tb(col) VALUES(2)
INSERT tb(col) VALUES(3)
DELETE tb WHERE col=3
INSERT tb(col) VALUES(4)
INSERT tb(BH,col) VALUES(dbo.f_NextBH(),14)
--显示结果
SELECT * FROM tb
/*--结果
BH           col
------------------- -----------
050405000001  1
050405000002  2
050405000003  4
050405000004  14
--*/

转载地址:http://tniel.baihongyu.com/

你可能感兴趣的文章
for 循环嵌套for循环
查看>>
GTID复制异常的解决步骤
查看>>
【沫沫金】安卓手机版 - 日期控件
查看>>
在Linux使用exec执行命令时报的哪些错
查看>>
Waud.js – 使用HTML5降级处理的Web音频库
查看>>
WIN10 64位 JDK的安装
查看>>
CentOS 6.2目录服务之LDAP(一)
查看>>
使用高速通道加速iOS版本审核
查看>>
比较好玩的动态添加网页元素
查看>>
可替代的C语言开发环境
查看>>
Word 2003中打开最近操作过的文档的两种推荐的方法
查看>>
一条长为L的绳子,一面靠墙,另外三边组成矩形,问此矩形最大面积能是多少?...
查看>>
保持Service不被Kill掉的方法--双Service守护 && Android实现双进程守护 2
查看>>
从源码分析常见的基于Array的数据结构动态扩容机制
查看>>
重新认识javascript的settimeout和异步
查看>>
【组合数学+动态规划】在如下8*6的矩阵中,请计算从A移动到B一共有____种走法。要求每次只能向上或向右移动一格,并且不能经过P。...
查看>>
前几天入手一大菠萝,写个初始化教程
查看>>
CSS布局 ——从display,position, float属性谈起
查看>>
SoapUI Pro Project Solution Collection-DataSource(jdbc,excel)
查看>>
全国主要城市不同日照标准的间距系数
查看>>