独立编号表,生成编号

create table tb_no
(
 Name char(2) primary key ,                     --编号种类的名称
 Head nvarchar(10) not null default '',         --编号的前缀
 CurrentNO int not null default 0,              --当前的编号
 BHLen int not null default 6,                  --编号数字部份长度
 Description nvarchar(50)                       --编号种类说明
)

INSERT  TB_NO SELECT  'CG','CG',0,4,N'采购订单'
UNION ALL SELECT 'CJ','CJ',0,4,N'采购进货'
UNION ALL SELECT 'JC','JC',0,4,N'进仓单'
UNION ALL SELECT 'ZC','ZC',0,4,N'转仓单'
UNION ALL SELECT 'CC','CC',0,4,N'出仓单'
GO

CREATE PROC P_NEXTBH
@NAME CHAR(2),
@BH NVARCHAR(20) OUTPUT

AS
 BEGIN TRAN
  UPDATE TB_NO WITH (ROWLOCK) SET
   @BH=HEAD+RIGHT(POWER(10,BHLEN)+CURRENTNO+1,BHLEN),
   CURRENTNO = CURRENTNO+1
 WHERE NAME=@NAME
 COMMIT TRAN

 GO


--调用示例
DECLARE @BH CHAR(6)

EXEC P_NEXTBH 'CJ',@BH OUTPUT
SELECT @BH

EXEC P_NEXTBH 'CJ',@BH OUTPUT
SELECT @BH

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值