存储过程实现订单号,流水单号(8位)的详细思路
--在今天取到的最大订单上取最右边(后面)8位数转为int型加一
--不存在就以日期加‘00000001'为今日的第一条订单
BEGIN
1.建立存储过程,声明输出参数@indentNum,输出订单号
--新建存储过程,用于生产流水单号
END
5.如果表中存在,则在其表中最大的订单上+1,如果没有则新增当日的第一条订单号。
GO
--如果@CountMax不等于空,则表示表中有当日的数据
AS
select @CountMax = max(id) from testst where convert(varchar(10),rtrim(ltrim(date))) = convert(varchar(10),rtrim(ltrim(getdate())))
此文章是借鉴园中的各位大神的,本人只是略作修改。有不好的地方,欢迎吐槽。
set @date = convert(varchar(20),getdate(),112)--格式为20130117
declare @num nvarchar(20)
USE MyBookShop
3.定义函数@date为日期部分,赋值。
EXEC PROC_NumIndent @indentNum
--日期部分为当前日期。
set @num = convert(varchar(20),convert(int,right(@CountMax,8))+1)
CREATE PROC PROC_NumIndent
--用replicate函数,重复赋值‘0',补上高位
语法:print replicate('0',3) ————则会输出3个0
还想只取日期部分而不取时间部分,进行判断。希望大家多来吐槽。 注:其中会用到一个平常不怎么用到的函数replicate,因为在最大的订单上+1的时候需要将高位的0补上。
复制代码 代码如下:
GOELSE
4.判断表中是否存在当日的数据,根据日期进行查询,一般订单表中都会有日期的吧。
set @num = replicate('0',8-len(@num))+@num
PRINT @indentNum
set @indentNum = @date+ @num
set @indentNum = @date + '00000001'
BEGIN
--如果存在存储过程则删除
--判断表中是否存在当日的数据
DECLARE @date nvarchar(20)
2.一般订单号由两部分组成,日期和后续的订单号,根据需求看日期后面需要跟多少位数字,此文为8位。
DECLARE @CountMax nvarchar(20)
DECLARE @indentNum nvarchar(20)
@indentNum nvarchar(20) output--流水单号
先写实现思路,然后再贴上代码
就是判断2个日期是否相等,数据库当中是datatime格式的,可是判断的话就比较蛋疼了。
END
print @indentNum
IF (@CountMax <> '')
--以下是执行存储过程
GO
DROP PROC PROC_NumIndent
IF OBJECT_ID('PROC_NumIndent') IS NOT NULL
相关热词:
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://www.juheyunku.com/sql/mssql/2675.shtml
相关文章
热门TAG
命令 权重 外链 企业网站 白帽 php 织梦教程 dedecms修改内容 javascript 织梦 功能 标签 调用 详解 服务器 网站流量 实例解析 Dedecms 织梦cms HTML tags标签 python jquery教程 jquery windows SEO优化 蜘蛛 搜索引擎 网站收录 JSP最新文章
-
sql server 关于设置null的一
时间:2020-12-28
-
详解SQL游标的用法
时间:2020-12-27
-
vs code连接sql server数据库步
时间:2020-12-27
-
图书管理系统的sqlserver数
时间:2020-12-25
-
详解SQL 通配符
时间:2020-12-25
-
sql四大排名函数之ROW_NUM
时间:2020-12-25
-
SQLServer数据库处于恢复挂
时间:2020-12-24
-
Win10 64位安装个人版SQL20
时间:2020-12-24
热门文章
-
sqlserver中查询横表变竖表的sql语句简析
时间:2020-12-08
-
关于SQL Server查询语句的使用
时间:2020-12-13
-
SQL Server简单模式下误删除堆表记录恢复方
时间:2020-12-12
-
MSSQL教程_mssql数据库教程_MSSQL基础教程_第
时间:2020-12-13
-
详解SQL游标的用法
时间:2020-12-27
-
sql server 关于设置null的一些建议
时间:2020-12-28
-
jdbc连接sql server数据库问题分析
时间:2020-12-10
-
mssql关于一个表格结构的另外一种显示(表
时间:2020-12-11
-
SQL Server数据库入门学习总结
时间:2020-12-10
-
使用SqlBulkCopy时应注意Sqlserver表中使用缺
时间:2020-12-09
