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)文章
SQL Server誤區(qū)30日談 第19天 Truncate表的操作不會(huì)被記錄到日志
這個(gè)誤區(qū)也同樣流傳已久,我想是時(shí)候通過(guò)一些Demo進(jìn)行揭穿了2013-01-01
SQLSERVER 本地查詢更新操作遠(yuǎn)程數(shù)據(jù)庫(kù)的代碼
SQLSERVER 本地查詢更新操作遠(yuǎn)程數(shù)據(jù)庫(kù)的代碼,需要的朋友可以參考下2012-11-11
詳解SQL Server數(shù)據(jù)庫(kù)鏈接查詢的方式
本文我們主要介紹了SQL Server數(shù)據(jù)庫(kù)鏈接查詢的方式,包括內(nèi)連接、外連接和交叉連接等的內(nèi)容,需要的朋友可以參考下2015-08-08
MSSQL??附加數(shù)據(jù)庫(kù)提示“錯(cuò)誤?823”數(shù)據(jù)恢復(fù)實(shí)操
這篇文章主要介紹了MSSQL?2000?附加數(shù)據(jù)庫(kù)提示“錯(cuò)誤?823”數(shù)據(jù)恢復(fù)實(shí)操,報(bào)錯(cuò)823一般數(shù)據(jù)庫(kù)的物理頁(yè)面出現(xiàn)了損壞或者校驗(yàn)值損壞導(dǎo)致數(shù)據(jù)庫(kù)頁(yè)面無(wú)法被識(shí)別還有異常斷電導(dǎo)致的文件系統(tǒng)損壞,數(shù)據(jù)庫(kù)頁(yè)面丟失,下面針對(duì)錯(cuò)誤?823對(duì)數(shù)據(jù)進(jìn)行恢復(fù),需要的朋友可以參考一下2022-03-03
SQL Server數(shù)據(jù)庫(kù)自動(dòng)備份的實(shí)現(xiàn)步驟
要編寫一個(gè)自動(dòng)備份 SQL Server 數(shù)據(jù)庫(kù)的腳本,可以使用 SQL Server Management Studio (SSMS) 或者 Transact-SQL (T-SQL) 腳本,本文給大家介紹了一個(gè)一個(gè)簡(jiǎn)單的 T-SQL 腳本示例,需要的朋友可以參考下2023-11-11

