咖啡里 发表于 2022-9-12 23:22:53

外联库 SQL SERVER 自动编号语句

好久没写帖子,纯手痒分享一小段。如果能帮到你一点点就很开心。

   DECLARE @NewFno nvarchar(100),
      @Str nvarchar(50),
      @maxNum int,
      @Fnum varchar(4)

   Set @Str='CKD-'+substring(convert(varchar(10),GETDATE(),112),3,6)
   Set @maxNum=(select isnull(MAX(REPLACE(编码字段,@str,'')),0)
                                from 表名
                                where substring(编码字段,1,LEN(@str))=@str
                                andISNUMERIC(REPLACE(编码字段,@str,''))=1 )
   set @Fnum=RIGHT('000'+CAST(@maxNum+1 AS varchar(4)),4)
   Set @Str=@Str+@Fnum
   SELECT @Str AS 出库单号


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

willning 发表于 2022-10-24 14:05
这个做法最大的风险是你获取编码和插入数据库的操作不在一个事务,多人并发时,很可能出现“占号”的风险。

是的,一般不做单独编号使用

nevofer 发表于 2022-11-22 08:55:15

赞!

admcms2020 发表于 2023-12-31 07:39:06

:hjyzw:

牧野流云 发表于 2024-3-12 15:48:43

学习了,谢谢分享

137294886 发表于 2024-3-13 10:33:21

谢谢分享
页: [1]
查看完整版本: 外联库 SQL SERVER 自动编号语句