sql触发器接错问题!

来源:百度知道 编辑:UC知道 时间:2024/09/28 14:25:07
程序业务流程如下:
1、接收数据保存至表[Tc_Content]
2、运行触发器,当[Tc_Content]表接收到数据后,根据类型从[Tc_User]表中提取用户
3、将提取的用户信息写入表[Tc_SmsMt]
举例说明:
[Tc_Content]表接收到一条数据id=“T5”
运行触发器TriggerName
在[Tc_User]表中查找id=“T5”所对应的用户a的信息
把这些信息反馈到[Tc_SmsMt]表中
create trigger TriggerName
on [Tc_Content]
after insert
as
select * from [Tc_User]
where [Tc_User].[id]=[Tc_Content].[id]
insert [Tc_SmsMt]
select a.*
from [Tc_User] a,
inserted i
where a.id=i.id
end
这是我自己写的
但是编译时候有问题
麻烦高手帮忙看看到底是哪的问题啊!

楼主是做SP的吧,呵呵。
触发器里为什么开始要有个select语句呢?另外Tc_User表的结构和Tc_SmsMt的表结构是否一样呢?如果一样的话这么写
create trigger TriggerName
on Tc_Content
for insert
as
insert into Tc_SmsMt
select Tc_User.*
from Tc_User,inserted
where Tc_User.id=inserted.id

如果两个表结构不完全一样,指定要插入的字段

create trigger TriggerName
on Tc_Content
for insert
as
insert into Tc_SmsMt(字段1,字段2)
select Tc_User.字段1,Tc_User.字段2
from Tc_User,inserted
where Tc_User.id=inserted.id

create trigger TriggerName
on [Tc_Content]
after insert
as
insert [Tc_SmsMt]
select * from [Tc_User] where [Tc_User].id=(select id from insert)

1。这里的select * from [Tc_User]
where [Tc_User].[id]=[Tc_Content].[id]
好像没意义
2。insert 语句语法不对,缺少into
应该是insert into 表名 .....