触发器与事务的问题!

maotin 2005-08-30 11:15:38
我写勒个触发器,在更新一个字段后,
然后执行一些,insert 与 update语句,

当多客户联机操作的时候,问题就出来勒:
一个客户,更新字段触发勒,触发器,
同时,另外一个客户,访问被insert 和 update 的那些表,就出现等待的状态,
需要等第一个客户,触发器完全处理好,才可以继续操作!

是不是触发器就是一个事务?
有什么方法,可以解决这个问题的?
谢谢各位勒。。。。
...全文
319 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wgsasd311 2005-08-31
  • 打赏
  • 举报
回复
触发器是一个事务,在执行期间会锁定此表。
samfeng_2003 2005-08-31
  • 打赏
  • 举报
回复
没有什么好的办法。因为本身就是矛盾的,触发器不能适合大量数据的同步处理。建议你更改为存储过程处理吧,效率高一些,那么很好处理一些同步的问题。
maotin 2005-08-31
  • 打赏
  • 举报
回复
可是,第一句写Commit Trans
整个触发器就不能用了.....
bugchen888 2005-08-31
  • 打赏
  • 举报
回复
在触发器的第一句话就Commit Trans
将其隐式事务先提交.
maotin 2005-08-30
  • 打赏
  • 举报
回复
难道没有其他方法嘛?
vivianfdlpw 2005-08-30
  • 打赏
  • 举报
回复
触发器不适合做大量数据处理的操作,建议在其他地方进行处理
WangZWang 2005-08-30
  • 打赏
  • 举报
回复
insert 和 update语句本身处理时就会产生
隐式事务进行更新。
iwl 2005-08-30
  • 打赏
  • 举报
回复
触发器是一种特殊类型的存储过程,当使用下面的一种或多种数据修改操作在指定表中对数据进行修改时,触发器会生效:UPDATE、INSERT 或 DELETE。触发器可以查询其它表,而且可以包含复杂的 SQL 语句。它们主要用于强制复杂的业务规则或要求。

触发器还有助于强制引用完整性,以便在添加、更新或删除表中的行时保留表之间已定义的关系。然而,强制引用完整性的最好方法是在相关表中定义主键和外键约束。如果使用数据库关系图,则可以在表之间创建关系以自动创建外键约束。

它本身就是一个隐藏的事务。当有insert 与 update的时候,系统会自动加锁,直到该事务完成,所以尽量缩短事务的执行过程。

34,588

社区成员

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

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