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
(
@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
相关文章推荐
- phpredis中文手册——《redis中文手册》 php版
- MongoDB副本集配置系列十一:MongoDB 数据同步原理和自动故障转移的原理
- python 使用memcached
- sql求时间差
- redis密码管理
- 如何对数据库中的表以及表中的字段进行重命名
- SQL SERVER ->> BCP导出数据到平面文件
- 解决mysql-5.6.14-winx64中文乱码问题
- 打印数据库字典
- MongoDB副本集配置系列十:MongoDB local库详解和数据同步原理
- Sql Server Job 常用方法
- sql 使用存储过程传递列名或表名作为参数
- sql游标的使用
- 使用python生成oracle数据报表
- Mysql的Merge存储引擎实现分表查询
- Sql declare申明变量
- Oracle基础(五)pl/sql进阶(分页过程)
- sql语句中针对日期格式的处理
- C# MongoDB 操作
- 甲骨文终获Java编程语言版权