手机看片精品高清国产日韩,色先锋资源综合网,国产哺乳奶水91在线播放,乱伦小说亚洲色图欧洲电影

幫助中心 >  技術(shù)知識(shí)庫(kù) >  數(shù)據(jù)庫(kù) >  相關(guān)技術(shù)支持 >  SQLServer中防止并發(fā)插入重復(fù)數(shù)據(jù)的方法詳解

SQLServer中防止并發(fā)插入重復(fù)數(shù)據(jù)的方法詳解

2018-01-18 23:14:03 5316

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


提交成功!非常感謝您的反饋,我們會(huì)繼續(xù)努力做到更好!

這條文檔是否有幫助解決問(wèn)題?

非常抱歉未能幫助到您。為了給您提供更好的服務(wù),我們很需要您進(jìn)一步的反饋信息:

在文檔使用中是否遇到以下問(wèn)題: