怎样在Trigger中直接定位表示正在触发的记录?

saucerman 2000-02-18 11:47:00
实际需求:
两个表——job(工作表)和require(客户需求表)
其中job的记录都是根据require来的,即require插入一条记录,job也相应插入一条记录。
二者主键的值同步变化。

在require的insert上定义触发器如下:

create trigger trg_insnewjob on require
for insert
as
insert job
(job_id,lister)
select req_id,lister
from require
where not exists
(select req_id
from job
where job.req_id=require.req_id)

这个触发器是正确的,完全可正常工作,只是太罗嗦了!
注意:
where not exists
(select req_id
from job
where job.req_id=require.req_id)
这句,实际上只是找到正在触发事件的这条记录。
我这菜鸟现请教高手——
怎样在Trigger中直接定位表示正在触发的记录(当前记录)?
以及怎样定位表示表中的头一条记录以及最后一条记录?
(最好不用定义cursor再行定位的方法)
我这人特笨,回答请给出例子,好吗?
要最简便的途径!最快捷的方式!

...全文
184 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
july 2000-02-18
  • 打赏
  • 举报
回复
create trigger trg_insnewjob on require
for insert
as
insert job
(job_id,lister)
select req_id,lister
from inserted


inserted是记录有关插入的值的,相应的当然还有:deleted
saucerman 2000-02-18
  • 打赏
  • 举报
回复
谢谢July,OK --- 是不是还应有个updated ?

那么,我还想知道除了用cursor外还有没有更方便简洁的手法来——
定位表示表中的头一条记录以及最后一条记录?

再次谢谢July,以后我一用到inserted和deleted就会想起你的。
我也曾并且现在还在用着一个English Name——June—— 不好意思比你大了点——
但没你年轻!!! Best wishes for you!

34,575

社区成员

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

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