create trigger state_update on classstate
for insert
as
begin
update a
set state1 = i.state
from checkstate a
left join inserted i
on a.querydate = i.querydate and a.classroom = i.classroom
end
for insert
as
begin
update a
set state1 = i.state
from checkstate a
left join inserted i
on a.querydate = i.querydate and a.classroom = i.classroom
end
for insert
as
begin
update checkstate
set state1 = inserted .state
from checkstate
left join inserted
on checkstate .querydate = inserted .querydate and checkstate .classroom = inserted .classroom
end
for insert
as
begin
update checkstate
set state1 = inserted .state
from checkstate ,inserted
where checkstate .querydate = inserted .querydate and checkstate .classroom = inserted .classroom
end 也可以where ,几种不同的写法
如果我在刚刚那个程序里想前面加个关于inserted的判断要怎么做呢?
这样又是不行的,正如你所说,无法解析create trigger state_update on classstate
for insert
as
if (inserted.class = 1)
begin
update checkstate
set state1 = inserted .state
from checkstate ,inserted
where checkstate .querydate = inserted .querydate and checkstate .classroom = inserted .classroom
end
for insert
as
if (select class from inserted) = 1
begin
update checkstate
set state1 = inserted .state
from checkstate,inserted
where checkstate .querydate = inserted .querydate and checkstate .classroom = inserted .classroom
end
这样似乎就可以了,谢谢指教
例如,
declare @a table(before int,after int)
update tablea
set id=id+1
output deleted.id,
inserted.id
into @a(before,after )
select * from @a
update c
set state1 = inserted.state
from inserted i,checkstate c
where c.querydate = i.querydate and c.classroom = i.classroom