我的数据库是sqlserver2000,A表中有一个update 触发器,每当A表中的数据变动,自动修改B表的内容,我想实现在有的修改操作不让其触发,有的让其触发,下面写法是否可行?如果事务中出现回滚,会回到停止触发器之前的Enable状态吗?
对于这种需求,大家一般都采用什么好办法,请赐教,谢谢在delphi中使用ADOConnection调用事务,举例如下
ADOConnection1.BeginTrans;//开始事务
try
Alter table A Disable trigger tr_uptb //停止触发器
//A表中修改数据 update A set A.Value=100 where ..... ADOConnection1.CommitTrans;//提交事务
Alter table A Enable trigger tr_uptb //启用触发器
except
ADOConnection1.RollbackTrans;//回滚事务
Exit
end;数
对于这种需求,大家一般都采用什么好办法,请赐教,谢谢在delphi中使用ADOConnection调用事务,举例如下
ADOConnection1.BeginTrans;//开始事务
try
Alter table A Disable trigger tr_uptb //停止触发器
//A表中修改数据 update A set A.Value=100 where ..... ADOConnection1.CommitTrans;//提交事务
Alter table A Enable trigger tr_uptb //启用触发器
except
ADOConnection1.RollbackTrans;//回滚事务
Exit
end;数
解决方案 »
- 谁会优化这个存储过程,有必要优化吗,临时表我没用上,帮人帮到底请直接给出代码
- 急呀触发器问题
- 把表 Txt-user,users,txt_operatlog的数据,存到制定目录
- 请教关于表中日期截取并减去现有日期的问题
- sqlserver2000可以在红旗linux下安装吗?
- 求助,关于SQL语句如何读取上条记录与下条记录进行操作
- 菜鸟高分求助:表结构的转变
- 两个难问题请教
- **为何我的远程登录sqlserver总是提示:SQL Server 不存在或访问被拒绝**
- 因水平有限,问了好久都没解决的问题,希望大家耐心的解答!谢谢了!
- sql语句连接数据库失败,提示默认设置 “SQL Server 不允许远程连接这个事实可能会导致失败。”
- sql中相除怎么得到浮点数
如果是栏位的话 if update(XXX)
如果是值的话,考虑select .. from inserted
但就解决方案来说,使用DDL来限制触发器是不大可行的,因为会牵涉到一个用户权限问题。我觉得还是如#2楼所说,在TRIGGER内做判断比较好。