mssqlserver就是mysql吗_MSSqlServer伪序列_MySQL

MSSqlServer伪序列_MySQL

先创建一个序列表

if exists (select 1

from sysindexeswhere

id = object_id('TSysSequence')and

name = 'In_SeName'and indid > 0and indid < 255)drop

index TSysSequence.In_SeNamegoif exists

(select 1from sysobjectswhere id = object_id('TSysSequence')and type = 'U')drop table TSysSequencego

/*======================================*//* Table: TSysSequence *//*=======================================*/

create table TSysSequence (SeName nvarchar(50) not null,

Increment int not null default 1,CurVal bigint not null default 0)goif exists

(select 1 from sys.extended_propertieswhere major_id = object_id('TSysSequence')

and minor_id = 0)begindeclare @CurrentUser sysnameselect @CurrentUser = user_name()execute

sp_dropextendedproperty 'MS_Description','user', @CurrentUser, 'table', 'TSysSequence'endselect

@CurrentUser = user_name()execute sp_addextendedproperty 'MS_Description','

模拟oracle序列

不允许用户维护,数据库初始化以后不允许任何人修改其中的值。

默认生成名称为“DID”和“SID”的两个序列,意义为“数据序列号”和“系统序列号”。’,

'user', @CurrentUser, 'table', 'TSysSequence'goinsert into TSysSequence (SeName,Increment,CurVal)

values ('DID',1,0) ;insert into TSysSequence (SeName,Increment,CurVal) values ('SID',1,0) ;

/*=======================================*//* Index: In_SeName *//*=======================================*/

create unique index In_SeName on TSysSequence (SeName ASC)

go

再创建一个存储过程完成序列的使用

if exists (select 1from sysobjectswhere id = object_id('PGetSequenceValue')and type in ('P','PC'))drop

procedure PGetSequenceValuegocreate

procedure PGetSequenceValue@SeName nvarchar(50),@SeVal bigint

outasbeginif not

exists(select 1 from TSysSequence where SeName = @SeName)

beginraiserror('不存在序列%s',16,1,@SeName)returnend

update TSysSequence set @SeVal = CurVal + Increment,

CurVal = CurVal + Increment where SeName = @SeNameendgo

使用方法

declare @ID1 intEXEC PGetSequenceValue 'SID',@ID1 OUTPUT

select @ID1

declare @ID2 intEXEC PGetSequenceValue 'DID',@ID2 OUTPUT

select @ID2

以上就是MSSqlServer伪序列_MySQL的内容,更多相关内容请关注PHP中文网(www.php.cn)!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值