程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> SQLServer中防止並發插入重復數據的方法詳解

SQLServer中防止並發插入重復數據的方法詳解

編輯:關於SqlServer

SQLServer中防止並發插入重復數據,大致有以下幾種方法:

1.使用Primary Key,Unique Key等在數據庫層面讓重復數據無法插入。

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,雖然能鎖住,但並發性能也不佳。
 if @@ROWCOUNT = 0
 insert into Table (****) values(****);
Commit Tran

以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved