加入收藏 | 设为首页 | 会员中心 | 我要投稿 甘南站长网 (https://www.0941zz.com/)- 科技、行业物联网、开发、云计算、云管理!
当前位置: 首页 > 数据库 > MsSql > 正文

SQLServer2005 的查询独占模拟

发布时间:2020-09-05 08:10:19 所属栏目:MsSql 来源:互联网
导读:这个问题一直被很多人关注,基本上得到的答案是两种倾向,一种是锁一种是给记录打标记(也就是update)。

对于应用来说,我并不提倡人为给记录加锁,这样会惹来很多麻烦,况且锁并不能解决所有问题,如果你有这方面好的经验我们可以进一步交流。
对于应用来说,我并不提倡人为给记录加锁,这样会惹来很多麻烦,况且锁并不能解决所有问题,如果你有这方面好的经验我们可以进一步交流。
<div class="codetitle"><a style="CURSOR: pointer" data="67414" class="copybut" id="copybut67414" onclick="doCopy('code67414')"> 代码如下:<div class="codebody" id="code67414">
set nocount on
use tempdb
go
if (object_id ('tb' ) is not null )
drop table tb
go
create table tb (id int identity (1,1 ),name varchar (10 ),tag int default 0 )
insert into tb (name ) select 'a'
insert into tb (name ) select 'b'
insert into tb (name ) select 'c'
insert into tb (name ) select 'd'
insert into tb (name ) select 'e'
go
update top (2 ) tb with (rowlock,readpast ) set tag = 1 output inserted . id,inserted . name where tag = 0
go
update top (2 ) tb with (rowlock,inserted . name where tag = 0
go
set nocount off
/
id name
----------- ----------
1 a
2 b
id name
----------- ----------
3 c
4 d
id name
----------- ----------
5 e
/

如果你有更好的建议,我们不妨探讨一下。

(编辑:甘南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读