日期:2014-05-18  浏览次数:20402 次

自动生成号段的存储过程
进销存系统:产品入库后自动为每个产品生成唯一的编号(共24位).
规则如下:产品号+流水号+供货商号+有效期(产品号为前12位,不够12位的在前面加&代替;流水号为系统自动生成的号码,长度为6位从1到999999,自然增长,号不重复,数字位数不到6位的用0补,如号35不足用0补货为000035;供货商号为3位,固定;有效期为三位固定).

比如说现在有个批产品,有一万个,用户存储过程如何生成这样的号段?号段生成后插入到别外一张表中,如果中间出错,退回真个过程。第二次进购同样的产品,号段接着之前的号使用不重得。

请各位高手指教!谢谢了。

------解决方案--------------------
SQL code
DECLARE @maxID INT,@maxSerial
SELECT @maxID=MAX(CAST(编号 AS INT)),@maxSerial=REPLICATE('0',6-LEN(RTRIM(@maxID))) + RTRIM(@maxID) FROM tb
SELECT @maxSerial