不知道是不是事务处理的问题?

mobilephone 2002-06-25 10:36:32
假设一个表作为共享资源,有多个过程访问此共享资源。怎样才能象在应用程序中实现排队访问的机制。
数据库:SQL SERVER 2000
我现在用的方法比较笨,就是把隔离级别设到最低,允许脏读、幻象读,这样可以解决一些问题,但是还是不能解决全部。
有没有更好的方法来解决?
...全文
36 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
愉快的登山者 2002-06-25
  • 打赏
  • 举报
回复
用事务实现。
chenxix 2002-06-25
  • 打赏
  • 举报
回复
在过程中访问该表时加上事务即可!
kaikaihe 2002-06-25
  • 打赏
  • 举报
回复
好好了解事务的工作原理吧
mobilephone 2002-06-25
  • 打赏
  • 举报
回复
这可能就是初学者的困惑吧。
bluepower2008 2002-06-25
  • 打赏
  • 举报
回复
你的意思是不太容易理解,不同的进程优先级不同,但用户和角色都一样,那怎么来判断优先级呢?
另外要实现排队机制,那c的做法是插队吗?
你憧憬的情况,你自己想清楚了吗?
mobilephone 2002-06-25
  • 打赏
  • 举报
回复
我看大家没有明白我的意思。我憧憬的情况是这样的,不同的过程访问此共享资源有不同的优先级别(用户身份是相同的,角色也相同)。用事务处理没有错,毕竟SQL SERVER中没有自定义锁,所以只有采用事务处理了,但是我用的还很差。
还是举个例子吧:
假如现在有A过程和B过程在访问共享资源,在访问未结束的时候有过程C要访问共享资源,而过程C在访问的过程中不必考虑A和B的存在,甚至中断A和B的运行。
以上的例子基本就是我的想法了。
bluepower2008 2002-06-25
  • 打赏
  • 举报
回复
如果把表作为共享资源,其他进程访问是只读访问,还是有写操作?
如果是只读的话,不用设置什么事务级别,所有的进程都可以共享读,sqlserver默认的共享锁是允许多个进程共享读的。

你如果想实现排队访问机制,那么隔离级别是应该更高,而不是更低,越低共享程度越高,怎么实现一次只允许一个进程访问呢?
dreamfan 2002-06-25
  • 打赏
  • 举报
回复
就是楼上各位说的
wjohenw 2002-06-25
  • 打赏
  • 举报
回复
我想还是象楼上所说的,用事务实现吧

34,593

社区成员

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

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