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

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

phm 2003-01-19 09:06:34
请问当我删除记录时激活触发器,那我如何把刚删除的记录恢复,不让删除呢.触发器有返回值吗,我在程序中如何知道触发器执行的结果是删除还是不删除呢??????
...全文
45 点赞 收藏 7
写回复
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
回复
发动态
发帖子
MS-SQL Server
创建于2007-09-28

3.2w+

社区成员

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