触发器可否这么写?

zwx963536 2003-12-15 02:07:42
……
………
………

ErrTag:
ROLLBACK TRANSACTION

当错误发生时回滚事务,但不知这样写是否会可以?
...全文
52 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
LoveSQL 2003-12-15
  • 打赏
  • 举报
回复
完全可以!
zjcxc 元老 2003-12-15
  • 打赏
  • 举报
回复
--可以的.

create trigger t_test on 表
for insert
as
insert into 表.... --处理语句1
if @@error<>0 goto lb_err

insert into 表.... --处理语句2
if @@error<>0 goto lb_err

lb_err:
rollback tran
go
shuiniu 2003-12-15
  • 打赏
  • 举报
回复
触发器里不能写commit语句
---------------------
可以写,但不能孤立的写!

如果在触发器里一定要写 commit tran
那必须也要写 begin tran
否则就会出现sdhdy(大江东去...) 说的现象!

yoki 2003-12-15
  • 打赏
  • 举报
回复
.
.
.
.
.
if @@error<> 0 goto Err

Err:
rollback
sdhdy 2003-12-15
  • 打赏
  • 举报
回复
触发器里不能写commit语句,如果有的话后面的向数据库的插入语句就不会提交!
shuiniu 2003-12-15
  • 打赏
  • 举报
回复
同意楼上的!
txlicenhe 2003-12-15
  • 打赏
  • 举报
回复
没必要写commit
insert ...
if @@error<> 0 goto Err
delete...
if @@error<> 0 goto Err
update..
if @@error<> 0 goto Err

return
Err:
rollback
txlicenhe 2003-12-15
  • 打赏
  • 举报
回复
insert ...
if @@error<> 0 goto Err
delete...
if @@error<> 0 goto Err
update..
if @@error<> 0 goto Err
commit
return
Err:
rollback
shuiniu 2003-12-15
  • 打赏
  • 举报
回复
完全可以!
zwx963536 2003-12-15
  • 打赏
  • 举报
回复
非常感谢!
victorycyz 2003-12-15
  • 打赏
  • 举报
回复
自己做测试。

34,838

社区成员

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

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