1。用adoconnection如何开始事务、保存事务、回滚事物?
2。在sql server 2000 中如何解决上面问题?
3。我下面的代码为什么提示不能保存事务?
use pangu
go
delete from department
where dept_id='1021'
save transaction after_deleteupdate employee
set dept_id='1001'
where dept_id='1021'if @@error!=0 or @@rowcount=0 then
begin
rollback tran after_delete
commit tran
print'更新员工信息时产生错误!'
return
end;
2。在sql server 2000 中如何解决上面问题?
3。我下面的代码为什么提示不能保存事务?
use pangu
go
delete from department
where dept_id='1021'
save transaction after_deleteupdate employee
set dept_id='1001'
where dept_id='1021'if @@error!=0 or @@rowcount=0 then
begin
rollback tran after_delete
commit tran
print'更新员工信息时产生错误!'
return
end;
BEGIN TRANSACTION aaa
///SQLIF ( @@error = 0 )
COMMIT TRANSACTION aaa
ELSE
ROLLBACK TRANSACTION aaa
try
......
adoconnection1.CommitTrans;
except
adoconnection1.RollbackTrans;
end;
adoconnection1.BeginTrans;
try
..... ←------------------这里!!!
adoconnection1.CommitTrans;
except
adoconnection1.RollbackTrans;
end;
2。BEGIN TRANSACTION,COMMIT TRANSACTION和ROLLBACK TRANSACTION
3。
use pangu
go
begin transaction after_delete
delete from department
where dept_id='1021'
save transaction after_deleteupdate employee
set dept_id='1001'
where dept_id='1021'if @@error!=0 or @@rowcount=0 then
begin
rollback tran after_delete
commit tran
print'更新员工信息时产生错误!'
return
end;
go
delete from department
where dept_id='1021'
BEGIN TRANSACTION
update employee
set dept_id='1001'
where dept_id='1021'if @@error<>0 or @@rowcount=0 begin
ROLLBACK TRANSACTION
print'更新员工信息时产生错误!'
return
end else
COMMIT TRANSACTION
go
begin transaction after_delete
delete from department
where dept_id='1021'
save transaction after_deleteupdate employee
set dept_id='1001'
where dept_id='1021'if @@error!=0 or @@rowcount=0 then
begin
rollback tran after_delete
commit tran
print'更新员工信息时产生错误!'
return
end;
测试通过!