(Reprint)Simulating the sequence of Oracle in Sql Server by leveraging the identity

Create   proc  sp_CreateSequence 
    (
@sequenceName   varchar ( 40 ),
    
@startVal   int   = 1 ,
    
@increment   int   = 1 )
AS
BEGIN
   
declare   @sqlStmt   varchar ( 100 )
   
set  nocount  on
   
set   @sqlStmt   =   ' Create Table  '   +   @sequenceName   +  
      
'  ( sqVal int IDENTITY ( '   +   convert  ( varchar ( 10 ), @startVal +  
    
' , '   +   convert  ( varchar ( 10 ), @increment +   ' )) '
   
exec  ( @sqlStmt )
   
set  nocount  off
end
go
-- ----------------------------------

Create   function  dbo.CurrVal ( @sequenceName   varchar ( 40 ))
returns   int
as
   
begin
      
return  (IDENT_CURRENT( @sequenceName ))
   
end
go
-- -----------------------------------

Create   proc  NextVal ( @sequenceName   varchar ( 40 ) , @nextVal   int  output)
as
begin
   
declare   @sqlStmt   varchar ( 100 )
   
set  nocount  on
   
set   @sqlStmt   =   ' insert  '   +   @sequenceName   +   '  DEFAULT VALUES  '
   
exec  ( @sqlStmt )
   
SET   @nextVal = IDENT_CURRENT( @sequenceName )
   
set  nocount  off
end  
go

转载于:https://www.cnblogs.com/jerryhong/archive/2009/07/22/1528644.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值