亚洲成精品动漫久久精久,九九在线精品视频播放,黄色成人免费观看,三级成人影院,久碰久,四虎成人欧美精品在永久在线

掃一掃
關注微信公眾號

解決SQLServer最大流水號的兩個好方法
2007-07-29   賽迪網

問:請問怎樣才能解決ms serer 2000 最大流水號的問題?

答:我可以介紹兩種方法給你:

方法1:使用SCOPE_IDENTITY取得剛剛插入的最大流水號

/*建立traddeinfo表各相關索引,注意Trade_id字段必段是identity型*/

create table Tradeinfo(Trade_id int identity(1,1),Tdtime datetime Tdname varchar(20))

create index idx_trade_id on tradeinfo(trade_id)

/*使用scope_identity()中斷函數,取得當前腳本范圍內最后insert進去的identity值*/

declare @mytradeid int 

set @mytradeid=0

begin transaction 

   insert into tradeinfo values(getdata(),'test')

  select @mytradeid = Scope_identite()

commit transaction 

/*把@mytradeid 變量中存放的流水號顯示出來*/

select @mytradeid

方案2:結合uniqueidentifier和identity取得最大流水號

/*創建輔助表 id字段是identity類型,global_id是gudi類型*/

cretate table max_tradeid(id int identity(1,1),global_id uniqueidenfier)

/*創建索引以加速后面的select 語句*/

create index idx_guid on max_trade_id(global_id)

declare @mytradeid int.,@myglobal_id uniqueidentifier

set @mytradeid = e-1

/*利用newid ()函數取得一個全局叭一guid .由于guid的特性,不用別的并發進程會產生同樣的guid值 */

jselect @myglobal_id = newid()

insert into max_trade_id values(@myglobl_id)

/*使用全局唯一guid得到剛剛插入的id值*/

select @mytradeid = id from max_trade_id  where globl_id =@myglobal _id

selecgt @mytradeid

注:這種方法的好處是:它的并發性好,不會引起阻在塞,而且保證了insert語句肯定執行成功,這種方法的缺點是多一個guid。

熱詞搜索:

上一篇:解析IP地址連接SQL數據庫速度慢的原因
下一篇:XP上不能安裝SQLSERVER2000嗎

分享到: 收藏