##紧急求教:事务锁定的问题

liuyan4794 2006-04-28 03:02:57
create table T_TestTrans(ID int)

A程序:
begin tran
insert into T_TestTrans values(2)
A程序后面继续执行很多SQL才提交事务,在A程序提交事务之前B程序开始访问
select * from T_TestTrans

结果B程序需要等到A程序事务提交之后才能返回查询结果


我想做到B程序立即返回执行结果,不用等到A程序提交事务之后才返回,但不包含A程序在事务中提交(更新、插入、删除)的数据 ,请教怎样才能实现
...全文
271 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuyan4794 2006-05-11
  • 打赏
  • 举报
回复
谢谢,还以为没法解决,好久没来看了
shuiniu 2006-04-30
  • 打赏
  • 举报
回复
用readpast锁定提示:
select * from T_TestTrans with (readpast)
fanchaoyun 2006-04-30
  • 打赏
  • 举报
回复
Select top 1 * FROM t_tabel WITH (TABLOCKX)
  • 打赏
  • 举报
回复
标记。
liuyan4794 2006-04-28
  • 打赏
  • 举报
回复
to:skywebnet(小苯)

我只是举了这个例子,实际上A、B两个程序里有很多这种情况,没法按你说的做法去改啊
云中客 2006-04-28
  • 打赏
  • 举报
回复
按楼主所言,好像实现很难
skywebnet 2006-04-28
  • 打赏
  • 举报
回复
begin tran
insert into T_TestTrans(……,status) values(2,'中')

……
update T_TestTrans set status='是' where status='中'
commit
A程序后面继续执行很多SQL才提交事务,在A程序提交事务之前B程序开始访问
select * from T_TestTrans with (nolock) where status='是'
guanjm 2006-04-28
  • 打赏
  • 举报
回复
这样有问题,查出来的结果包含A程序中没有提交的数据
---------------------
那没办法了 只有这个了 nolock 是包含脏数据的 你都锁定了 怎么看啊
luoqun_ncs 2006-04-28
  • 打赏
  • 举报
回复
select * from T_TestTrans

你都没有where条件
liuyan4794 2006-04-28
  • 打赏
  • 举报
回复
这样有问题,查出来的结果包含A程序中没有提交的数据
guanjm 2006-04-28
  • 打赏
  • 举报
回复
select * from T_TestTrans with (nolock)

34,587

社区成员

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

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