找回密码
 立即注册

QQ登录

只需一步,快速开始

咖啡里 讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2022-9-12 23:22  /   查看:3857  /  回复:9
好久没写帖子,纯手痒分享一小段。如果能帮到你一点点就很开心。
QQ截图20220912231358.jpg
  1.    DECLARE @NewFno nvarchar(100),
  2.         @Str nvarchar(50),
  3.         @maxNum int,
  4.         @Fnum varchar(4)

  5.    Set @Str='CKD-'+substring(convert(varchar(10),GETDATE(),112),3,6)
  6.    Set @maxNum=(select isnull(MAX(REPLACE(编码字段,@str,'')),0)
  7.                                 from 表名
  8.                                 where substring(编码字段,1,LEN(@str))=@str
  9.                                 and  ISNUMERIC(REPLACE(编码字段,@str,''))=1 )
  10.    set @Fnum=RIGHT('000'+CAST(@maxNum+1 AS varchar(4)),4)
  11.    Set @Str=@Str+@Fnum
  12.    SELECT @Str AS 出库单号
复制代码



评分

参与人数 4金币 +99 满意度 +15 收起 理由
13794930121 + 5
sz_xd + 5
Chelsey.Wang + 99 赞一个!
小白学员 + 5

查看全部评分

9 个回复

倒序浏览
lml0126
高级会员   /  发表于:2022-11-2 20:38:57
推荐
新增保存时再检测一下是否占用,占用就提醒并给新号
回复 使用道具 举报
SXJC
注册会员   /  发表于:2022-9-15 16:47:16
沙发
学习了,很有用
回复 使用道具 举报
lml0126
高级会员   /  发表于:2022-10-24 07:47:00
板凳
用得上,不错
回复 使用道具 举报
willning
超级版主   /  发表于:2022-10-24 14:05:06
地板
这个做法最大的风险是你获取编码和插入数据库的操作不在一个事务,多人并发时,很可能出现“占号”的风险。
回复 使用道具 举报
咖啡里讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2022-10-24 21:33:36
5#
willning 发表于 2022-10-24 14:05
这个做法最大的风险是你获取编码和插入数据库的操作不在一个事务,多人并发时,很可能出现“占号”的风险。

是的,一般不做单独编号使用
回复 使用道具 举报
nevofer
初级会员   /  发表于:2022-11-22 08:55:15
7#
赞!
回复 使用道具 举报
admcms2020
中级会员   /  发表于:2023-12-31 07:39:06
8#

回复 使用道具 举报
牧野流云
初级会员   /  发表于:2024-3-12 15:48:43
9#
学习了,谢谢分享
回复 使用道具 举报
137294886
金牌服务用户   /  发表于:2024-3-13 10:33:21
10#
谢谢分享
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部