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