导航
  • 主页
  • 基础类
  • 应用实例
  • 新技术前沿

触发器可否这么写?

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

ErrTag:
ROLLBACK TRANSACTION

当错误发生时回滚事务,但不知这样写是否会可以?
...全文
29 点赞 收藏 11
写回复
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
LoveSQL 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
自己做测试。
回复
发动态
发帖子
MS-SQL Server
创建于2007-09-28

3.2w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
社区公告
暂无公告