SQLServer中防止并發(fā)插入重復(fù)數(shù)據(jù)的方法詳解
SQLServer中防止并發(fā)插入重復(fù)數(shù)據(jù),大致有以下幾種方法:
1.使用Primary Key,Unique Key等在數(shù)據(jù)庫層面讓重復(fù)數(shù)據(jù)無法插入。
2.插入時使用條件
insert into Table(****) select **** where not exists(select 1 from Table where ****);
3.使用SERIALIZABLE隔離級別,并且使用updlock或者xlock鎖提示(等效于在默認隔離級別下使用(updlock,holdlock)或(xlock,holdlock))
set transaction isolation level SERIALIZABLE Begin Tran select 1 from Table with(UPDLOCK) where **** --這里即算有索引支撐的情況下,加的也是范圍鎖RangeS-U,雖然能鎖住,但并發(fā)性能也不佳。 if @@ROWCOUNT = 0 insert into Table (****) values(****); Commit Tran
以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!
相關(guān)文章
根據(jù)多條件查詢臨時表 想得到不同結(jié)果集的方法
很多情況下,需要采用多個參數(shù)來查詢一張臨時表,每個參數(shù)都要求得到不同的臨時表結(jié)果集。而往往某些參數(shù)并不對應(yīng)這張臨時表中的字段,而是對應(yīng)與該臨時表ID關(guān)聯(lián)的另一張表的字段。2009-11-11數(shù)據(jù)庫復(fù)制性能測試 推送模式性能測試
使用了數(shù)據(jù)庫復(fù)制的人,首先擔(dān)心的就是主服務(wù)器和備份服務(wù)器的性能消耗問題,本人也是對此十分擔(dān)憂,查了半天,基本上沒發(fā)現(xiàn)類似的測試說明,就自己測試了一下,下面為測試的結(jié)果,僅供參考2012-06-06SqlServer將查詢結(jié)果轉(zhuǎn)換為XML和JSON
這篇文章主要介紹了SqlServer將查詢結(jié)果轉(zhuǎn)換為XML和JSON的相關(guān)資料,需要的朋友可以參考下2017-07-07關(guān)于SQL 存儲過程入門基礎(chǔ)(基礎(chǔ)知識)
本篇文章,小編將為大家介紹關(guān)于SQL 存儲過程入門基礎(chǔ)(基礎(chǔ)知識),有需要的朋友可以參考一下2013-04-04SQL Server雙服務(wù)器架設(shè)并數(shù)據(jù)自動同步教程
自編程序由單機版改為網(wǎng)絡(luò)版后,使用范圍迅速擴大,如何保障數(shù)據(jù)庫萬無一失成為一個重要解決的問題于是想到架設(shè)雙服務(wù)器并數(shù)據(jù)自動同步,詳細步驟如下2012-11-11通過使用正確的search arguments來提高SQL Server數(shù)據(jù)庫的性能
今天通過本文給大家介紹在SQL Server上關(guān)于indexing的一個特定的性能問題,本文給大家介紹的非常詳細,具有參考借鑒價值,感興趣的朋友可以參考下2016-11-11