SQLServer中防止并發(fā)插入重復數(shù)據(jù)的方法詳解
SQLServer中防止并發(fā)插入重復數(shù)據(jù),大致有以下幾種方法:
1.使用Primary Key,Unique Key等在數(shù)據(jù)庫層面讓重復數(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)容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!
相關文章
SQL Server誤區(qū)30日談 第19天 Truncate表的操作不會被記錄到日志
這個誤區(qū)也同樣流傳已久,我想是時候通過一些Demo進行揭穿了2013-01-01
SQLSERVER 本地查詢更新操作遠程數(shù)據(jù)庫的代碼
SQLSERVER 本地查詢更新操作遠程數(shù)據(jù)庫的代碼,需要的朋友可以參考下2012-11-11
詳解SQL Server數(shù)據(jù)庫鏈接查詢的方式
本文我們主要介紹了SQL Server數(shù)據(jù)庫鏈接查詢的方式,包括內(nèi)連接、外連接和交叉連接等的內(nèi)容,需要的朋友可以參考下2015-08-08
MSSQL??附加數(shù)據(jù)庫提示“錯誤?823”數(shù)據(jù)恢復實操
這篇文章主要介紹了MSSQL?2000?附加數(shù)據(jù)庫提示“錯誤?823”數(shù)據(jù)恢復實操,報錯823一般數(shù)據(jù)庫的物理頁面出現(xiàn)了損壞或者校驗值損壞導致數(shù)據(jù)庫頁面無法被識別還有異常斷電導致的文件系統(tǒng)損壞,數(shù)據(jù)庫頁面丟失,下面針對錯誤?823對數(shù)據(jù)進行恢復,需要的朋友可以參考一下2022-03-03
SQL Server數(shù)據(jù)庫自動備份的實現(xiàn)步驟
要編寫一個自動備份 SQL Server 數(shù)據(jù)庫的腳本,可以使用 SQL Server Management Studio (SSMS) 或者 Transact-SQL (T-SQL) 腳本,本文給大家介紹了一個一個簡單的 T-SQL 腳本示例,需要的朋友可以參考下2023-11-11

