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
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持我们!
您可能感兴趣的文章
- 01-10SQLServer存储过程实现单条件分页
- 01-10SqlServer 在事务中获得自增ID的实例代码
- 01-10SqlServer快速检索某个字段在哪些存储过程中(sql 语句)
- 01-10SQLServer性能优化--间接实现函数索引或者Hash索引
- 01-10SQLServer数据库中开启CDC导致事务日志空间被占满的原因
- 01-10SQL Server中对数据截取替换的方法详解
- 01-10SQL Server中关于基数估计计算预估行数的一些方法探讨
- 01-10SQLServer中使用扩展 获取Session级别的等待信息及SQLServer 2016中
- 01-10sql中的 where 、group by 和 having 用法解析
- 01-10SQLServer2008新实例远程数据库链接问题(sp