--初始化编号表 insert dbo.bh_max select 'JHG','JHG',0,8,'采购开票单' union all select 'JHA','JHA',0,8,'采购入库单' union all select 'XSG','XSG',0,8,'销售开票单' union all select 'XSA','XSA',0,8,'销售出库单' go -- 获取新编号的存储过程 alter proc dbo.p_nextbh @name nvarchar(20), @bh nvarchar(20) output as begin tran update bh_max with(rowlock) set @bh=head+right(power(10,bhlen)+recnum+1,bhlen), recnum=recnum+1 where name=@namecommit tran go declare @bh nvarchar(20) exec dbo.p_nextbh @name='XSA',@bh=@bh output print @bh select * from bh_max
insert dbo.bh_max
select 'JHG','JHG',0,8,'采购开票单'
union all select 'JHA','JHA',0,8,'采购入库单'
union all select 'XSG','XSG',0,8,'销售开票单'
union all select 'XSA','XSA',0,8,'销售出库单'
go
-- 获取新编号的存储过程
alter proc dbo.p_nextbh
@name nvarchar(20),
@bh nvarchar(20) output
as
begin tran
update bh_max with(rowlock)
set @bh=head+right(power(10,bhlen)+recnum+1,bhlen),
recnum=recnum+1
where name=@namecommit tran
go
declare @bh nvarchar(20)
exec dbo.p_nextbh @name='XSA',@bh=@bh output
print @bh
select * from bh_max