触发器执行失效的问题

zhxhjj 2011-06-13 11:21:08
如题,有进销存的业务表,和库存表,业务表通过解发器更新库存表,业务表中的SURE字段为1时就触发器更新库存。平常在测试过程中一切正常(目前怀疑压力测试不够),但现在发现在使用过程中,时常出现业务单据SURE字段已经为1,但库存表没有更新的情况,查了很久也查不出什么问题,搜索以往的贴子也没发现类似问题。

说明:程序由BS和CS的部署,都是直接连接数据库进行操作,所以终端数基本超200-300以上,同时每个终端都有可能在确认业务单据的操作。

因为每个业务表基本都有3-4个触发器(insert、delete、update分开),基本中update的触发器代码会比较多。

现在怀疑有没有可能SQL在很多线程同时触发器,有些触发器不会有效执行的情况,不知有没有这情况,请各位高人指点。
...全文
309 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Felix235 2011-06-16
  • 打赏
  • 举报
回复
同时多个操作可能存在死锁的情况,你看看是不是存在这样问题。
zhxhjj 2011-06-13
  • 打赏
  • 举报
回复
目前的更新方式也是先在业务表中存入数据,然后再通过更新业务表的SURE字段来同步库存,但现在就是SURE更新为1了,库存没变。

现在要改用存储过程,似乎不太现实。

我现在想确认SQL对触发器的执行会不会有这样的情况出现。
-晴天 2011-06-13
  • 打赏
  • 举报
回复
在访问量大的时候,最好不要使用触发器,因为触发器的效率不高.你这个问题仅改触发器貌似解决不了问题.
最好改用存储过程,在存储过程中先向业务表存入数据,再根据业务中字段的值向库存表更新数据.
GoAwayZ 2011-06-13
  • 打赏
  • 举报
回复
进销存很少用触发器。
-晴天 2011-06-13
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zhxhjj 的回复:]
目前的更新方式也是先在业务表中存入数据,然后再通过更新业务表的SURE字段来同步库存,但现在就是SURE更新为1了,库存没变。

现在要改用存储过程,似乎不太现实。

我现在想确认SQL对触发器的执行会不会有这样的情况出现。
[/Quote]
有可能会.
如果不能以存储过程方式来执行的话,那可以考虑去掉触发器,在应用中添加一条更新第二个表的语句.
zhxhjj 2011-06-13
  • 打赏
  • 举报
回复
TO 楼上

你也在这里转悠?也没见你提个贴问一下!
laikson 2011-06-13
  • 打赏
  • 举报
回复
LZ,好熟悉的名字啊,希望你能解决这个问题,然后告诉我。

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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