SQLServer最大流水號的解決方法
問:請問怎樣才能解決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。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-566622/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Sqlserver linked server指向Excel報錯編號為7399和7303的解決方法SQLServerExcel
- MS-SQLSERVER中的MSDTC不可用解決方法SQLServer
- sql 流水號的遞增SQL
- SQLServer資料庫MMC不能開啟檔案的解決方法SQLServer資料庫
- Dynamics CRM 圖表超出最大記錄限制的解決方法
- ora-00020超出最大程式數的解決方法
- 在SQLServer處理中的一些問題及解決方法SQLServer
- sqlserver 事務日誌過大 收縮方法解決方案SQLServer
- 解決你MCSE最大的困惑 (轉)
- 撥號VPS中691的可能原因及解決方法?
- 無線路由無法自動撥號的解決方法路由
- 忘記VAULT的帳號管理密碼的解決方法(二)密碼
- SQLServer2005安裝後,缺少“管理工具”的解決方法SQLServer
- JDBC無法用SSL連線SqlServer2008的解決方法JDBCSQLServer
- 關於谷歌賬號註冊手機號無法驗證的解決方法谷歌
- android 專案中出現紅色感嘆號的解決方法Android
- SqlServer鎖表解鎖解決辦法SQLServer
- SQL Server中生成指定長度的流水號SQLServer
- SQL Server中流水號生成的注意事項SQLServer
- Sqlserver 登入報錯Server is in script upgrade mode(Error 18401)的解決方法SQLServerError
- 查詢SQLSERVER版本號SQLServer
- 檢視SCN號(sqlserver)SQLServer
- netstat -ano檢視埠號無效解決方法
- SQLserver 程式被死鎖問題解決SQLServer
- ORA-01795: 列表中的最大表示式數為 1000解決方法
- ORA-01795:列表中的最大表示式數為1000解決方法
- TabError的解決方法Error
- ArtifactDescriptorException的解決方法Exception
- win10系統印表機出現感嘆號的解決方法Win10
- word中打不開“特殊符號”對話方塊的解決方法符號
- Win10電腦玩遊戲無法最大化視窗遊戲的解決方法Win10遊戲
- win10wifi訊號差怎麼恢復_win10wifi訊號差的解決方法Win10WiFi
- SQLServer資料庫恢復掛起的解決辦法SQLServer資料庫
- 填報流水號,預設表示式設定
- win10 wifi訊號不穩定如何修復_win10 wifi訊號不好的解決方法Win10WiFi
- SqlServer資料庫中文亂碼問題解決SQLServer資料庫
- SQLServer附加資料庫是隻讀模式的解決辦法SQLServer資料庫模式
- sqlserver DTS 系統找不到指定的檔案 解決辦法SQLServer