|
发表于 2020-4-17 15:30:01
|
显示全部楼层
在生成编号的方式上想办法;
不到事实表中去判断,而到专门存储当前编号中去判断;
例如:你可以单独在一个表t1中存储表的当前最大编号;然后在给个事件触发存储过程生成新的商品编号;
fx:
表t1中内容;
f1 f2
商品编号 sp000001
客户编号 kh000001
create procedure createNewID
@f1 varchar(20),
@ReturnID varchar(20)
as
declare
@NewID varchar(20),
@CurrID varchar(20)
--获取当前编号
select @CurrID = f2 from t1 where f1 = @f1
--得到当前编号
set @newID = convert(varchar(20),convert(int,right(@currid,6)))
set @ReturnID = left(@Currid,8-len(@Newid))+@Newid
go
--测试结果
declare
@Newid varchar(20)
exec createNewID '商品编号', @NewID output
print @Newid
|
|