您的位置:首页 > 数据库

sqlserver生成有序唯一标示

2015-07-02 10:58 295 查看
CREATE procedure 存储过程名称

(

@SequencePrefix varchar(10), --前缀

@SequenceLength int, --需要返回的标示长度

@KeyName nvarchar(30) --标示的对象

)

as

begin

if(@SequenceLength<=0)

begin

set @SequenceLength=10

end

if(@SequenceLength>20)

begin

set @SequenceLength=20

end

declare @sequence nvarchar(20),@maxValue int,@sequenceStr nvarchar(40)

set @sequence='00000000000000000000'

set @sequenceStr=@SequencePrefix+@sequence

update 标示表 set @maxValue = sequenceValue + 1,sequenceValue = sequenceValue + 1,prefix =left(@sequenceStr,@SequenceLength-LEN(@maxValue)) where keyName=@KeyName --更新标示表,并返回+1之后最大值

select left(@sequenceStr,@SequenceLength-LEN(@maxValue))+CONVERT(nvarchar(40),@maxValue)

end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: