update触发器问题....急!!!

来源:百度知道 编辑:UC知道 时间:2024/07/06 17:27:58
create trigger TriggerName1
on Tc_SmsMt
for update
as
set Tc_SmsMt.Content=Tc_Content.TConent,
Tc_SmsMt.FeeType=Tc_Content.TFeeType,
Tc_SmsMt.FeeCode=Tc_Content.TFeeCode,
Tc_SmsMt.SendDate=Tc_Content.TDate
select Tc_Content.TConent,Tc_Content.TFeeType,Tc_Content.TFeeCode,Tc_Content.TDate
from Tc_Content,inserted
where Tc_Content.TServiceCode=inserted.ServiceCode

当Tc_SmsMt表插入一条信息
则修改Content,FeeType,FeeCode,SendDate
这个程序编译是报语法错误
有些不解啊?
求教

create trigger TriggerName1
on Tc_SmsMt
for insert
as
update Tc_SmsMt
set Tc_SmsMt.Content=Tc_Content.TConent,
Tc_SmsMt.FeeType=Tc_Content.TFeeType,
Tc_SmsMt.FeeCode=Tc_Content.TFeeCode,
Tc_SmsMt.SendDate=Tc_Content.TDate
select Tc_Content.TConent,Tc_Content.TFeeType,Tc_Content.TFeeCode,Tc_Content.TDate
from Tc_Content,inserted
where Tc_Content.TServiceCode=inserted.ServiceCode

楼主对触发器的学习还要努一把力:)
这个触发器里不应该出现select,另外应该是个insert触发器才对。
其实你的需求用instead of触发器比较合适,最终插入Tc_SmsMt表的数据是在触发器里指定的数据。
注意触发器里Tc_SmsMt.a,Tc_SmsMt.b...代表的是Tc_SmsMt表除Content,FeeType,FeeCode,SendDate外的其它字段,因为我不知道你表中其他字段是什么,所以那么简写了;inserted.a,inserted.b... 也是一个道理,你按实际情况修改吧。
create trigger TriggerName1
on Tc_SmsMt
instead of insert
as

insert into Tc_SmsMt(Content,FeeType,FeeCode,SendDate,Tc_SmsMt.a,Tc_SmsMt.b...)
select Tc_Content.TConent,Tc_Content.TFeeType,Tc_Content.TFeeCode, Tc_Content.TDate ,