请教触发器问题,第一次写,还不怎么懂

shinji329 2006-08-21 12:12:53
我想插入在某个表在新建/修改/删除符合一定规则时,如某字段值>100,就向另一日志表写入一条记录,但是不知道怎么写读取新建修改删除的操作。请帮忙,谢谢了
create trigger trigger_1
on table1
for insert,delete,update
as
INSERT Trigger_Stakeout (col1, col2, col3)
select ???????????????????????????? from ??
这里怎么同时能读取我需要的insert,delete,update的信息呢?
...全文
169 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
shinji329 2006-08-21
  • 打赏
  • 举报
回复
2楼是说insert,delete不能同时存在吗?

我是要在操作table1表(包括新建,修改,删除记录)的时候检测某一条件是否成立如col2>100,如果成立则触发,在trigger_stakeout中插入一条记录,记录被操作表的名称即table1,符合条件即>100,值为100的列名即col2及其他一些附属信息
i9988 2006-08-21
  • 打赏
  • 举报
回复
create trigger trigger_1
on table1
for insert,delete,update
as
INSERT Trigger_Stakeout (col1, col2, col3,类型)
select ...,'改后或者插入' from inserted
where 某字段值>100
union all
select ...,'改前或者删除' from deleted
where 某字段值>100
WangZWang 2006-08-21
  • 打赏
  • 举报
回复
--LZ没有说明清楚是什么值要写日志?删除的值?改变前或改变后为多少的值才写日志?
--例如,删除前如某字段值>100,
create trigger trigger_1
on table1
for delete
as
INSERT Trigger_Stakeout (col1, col2, col3)
select col1, col2, col3 from deleted
where 字段值>100
go


fcuandy 2006-08-21
  • 打赏
  • 举报
回复
insert操作无deleted表
delete操作无inserted表
所以你要分别写,或者在语句中进行检测
fcuandy 2006-08-21
  • 打赏
  • 举报
回复
update时往deleted和inserted都写.
liangpei2008 2006-08-21
  • 打赏
  • 举报
回复
i9988不可以吗?LZ要分别对3种操作做判断?
shinji329 2006-08-21
  • 打赏
  • 举报
回复
up

34,587

社区成员

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

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