有关事务更新问题(内有SQL代码)

smallmark 2009-01-24 12:22:18
有如下两个SQL Connection同时发生:
第一个:

set tran isolation level repeatable read
begin tran
select * from table1 where [status]='new'
waitfor delay '00:00:10'
update table1 set [status]='read' where [status]='new'
commit


第二个:
insert into table1 ([name]) values ('micky')


table1表结构:
ID guid
Name vchar(10)
Status vchar(10) default='new'

已有记录:
8CC3ED6A-CAE4-4CFF-96AA-3BCF8013367B keith new
6B4AC0ED-8F8C-462E-87D7-124BC0C4FF5E mariah new

希望在第一个连接处理tran的update语句只更新已有的行记录,而不应该处理连接2中新增加的记录,即希望得到如下的结果:
8CC3ED6A-CAE4-4CFF-96AA-3BCF8013367B keith read
6B4AC0ED-8F8C-462E-87D7-124BC0C4FF5E mariah read
49530DEC-3F16-4E26-BA52-8DA5817179B3 micky new

该如何修改?
...全文
80 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
新丁11111 2009-01-24
  • 打赏
  • 举报
回复
学习
smallmark 2009-01-24
  • 打赏
  • 举报
回复
看来只有serializable级别才能做到这一点了,谢谢。已经解决。

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧