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

帮我优化一下存储过程,谢了
处理内容:
为一个大概有8万条数据的工作表设定12位的code,有一些可能已经有12位的code
处理过程:
1   从一个master中,根据TGPC取得9位的code
2   检查工作表中是否有以该9位code开始的12位code
3   如果有取最大值+1付给工作表
4   如果没有9位code+001付给工作表

实际的存储过程在下面

------解决方案--------------------
太长了,简单看了看。提个意见哦

建议 1、将需要修改的数据提取出来放在临时表(存放主键id和新code,这一步生成id,增量)
select [id] as sid,identity (int ,1,1) as ident into #table_Pqs from .....
2、根据增量ident 生成新code,并修改即可(当然要先获取最大code然后操作)
最大@maxcode= '000000000012 '

update table_yours set code=right( '000000000000 '+cast(cast(@maxcode as int)+ident as varchar),12) from #table_Pqs where table_yours.主键字段=sid