<><><><><>请问当我删除记录时激活触发器.............----->>>>>

phm 2003-01-19 09:06:34
请问当我删除记录时激活触发器,那我如何把刚删除的记录恢复,不让删除呢.触发器有返回值吗,我在程序中如何知道触发器执行的结果是删除还是不删除呢??????
...全文
68 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
phm 2003-01-19
  • 打赏
  • 举报
回复
用个表吗
hjhing 2003-01-19
  • 打赏
  • 举报
回复
你不能得到TRIGGER的返回值

你可以再寫個SQL來驗証以下TRIGGER的執行效果,從而返回你要的返回值。
hjhing 2003-01-19
  • 打赏
  • 举报
回复
假如你要攔住TID=3 的記錄永遠不被刪除,將你的TRIGGER改為:

CREATE TRIGGER insteaddel ON [dbo].[test2]
instead of DELETE
AS


delete test2
from deleted as T
where test2.tid = T.tid and test2.tid<>3
phm 2003-01-19
  • 打赏
  • 举报
回复
当用户删除一个记录我想在触发器中把这条记录恢复怎么做
就是拦住删除记录操作....
hjhing 2003-01-19
  • 打赏
  • 举报
回复
是用INSTEAD OF 來處理的
INSTEAD OF 代表 用你自己的語句控制 來 代替 觸發器的自動DEL動作

如:(你隻要用你自己的條件代替以下的(if(1=1))即可,也就是說,隻有滿足你的條件的時候,才會做真正的刪除動作!)

注意: 刪除的記錄都會自動保存在 DELETED 表中!


CREATE TRIGGER insteaddel ON [dbo].[test2]
instead of DELETE
AS

if(1=1)
delete test2
from deleted as T
where test2.tid = T.tid
yelook 2003-01-19
  • 打赏
  • 举报
回复
用另外一张临时表来记录触发情况,触发后把一些信息插入到此表中,不就行了吗?

pengdali 2003-01-19
  • 打赏
  • 举报
回复
不让删除表数据的触发器
CREATE TRIGGER insteaddel ON [dbo].[test2]
FOR deleted
ROLLBACK TRANSACTION

34,588

社区成员

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

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