触发器

好帅的一条鱼 2011-11-01 03:57:39

要求,做一触发器,在新增的时候查找出 同品号 最近的表A单据日期和请购部门,更新至 表B 的用途栏位,谢谢
...全文
136 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
昵称被占用了 2011-11-01
  • 打赏
  • 举报
回复
create trigger tri1 on a
for insert
as
begin
update b set
用途=(select top 1 单据日期+请购部门 from a inner join inserted i1 on a.品名=i1.品名 order by a.单据日期 desc)
from inserted i
where b.序号=i.序号 --这里假设序号是B主键
end

大概差不多这样,有问题肯定是没说清楚引起的
昵称被占用了 2011-11-01
  • 打赏
  • 举报
回复
有这样提问的

b表没有时间字段?怎么确定最近?
suiyanpeng 2011-11-01
  • 打赏
  • 举报
回复
学习。。。。。
pengxuan 2011-11-01
  • 打赏
  • 举报
回复

create trigger tri1 on a
for insert
as
begin
update b set 用途=(select top 1 单据日期+请购部门 from a inner join inserted on a.品名=inserted.品名)
end
--难道是这样
--小F-- 2011-11-01
  • 打赏
  • 举报
回复
create tigger test on a
for insert,update
begin
update
b
set
用途=a.日期
from
b,
(select * from inserted i where 日期=(select max(日期) from inserted where 单号=i.单号))a
where
a.单号=b.单号
end
--小F-- 2011-11-01
  • 打赏
  • 举报
回复
晕死了 写的有什么问题??还是没明白关系啊.
dawugui 2011-11-01
  • 打赏
  • 举报
回复
是不是要考虑不存在,则插入,存在则更新呢?
create trigger my_trig on a for inserted
as
begin
if not exists(select 1 from b where 品号 = (select 品号 from insered))
insert into b select top 1 ... from a where a.品号 = (select 品号 from inserted) order by 单据日期 desc
else
update b set 用途 = i.用途 ...
from b , (select top 1 t.* from a where a.品号 = (select 品号 from inserted) order by 单据日期 desc) i
where b.品号 = i.品号
end
dawugui 2011-11-01
  • 打赏
  • 举报
回复
create trigger my_trig on a for inserted
as
begin
update b set 用途 = i.用途 ...
from b , (select t.* from a where a.品号 = (select 品号 from inserted)) i
where b.品号 = i.品号
end
快溜 2011-11-01
  • 打赏
  • 举报
回复
增加数据后把下面的控件数据源重新绑定一下
好帅的一条鱼 2011-11-01
  • 打赏
  • 举报
回复
刚才可能描述的不清楚,没结果出现啊,兄弟们,来试试啊,
-晴天 2011-11-01
  • 打赏
  • 举报
回复
刚才不是有过了么.

34,838

社区成员

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

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