导航
  • 主页
  • 基础类
  • 应用实例
  • 新技术前沿

关于触发器的

dingpiao abc 架构师  2003-12-11 04:31:40
有A,B,C三张表

A 中有 id_1,c_1 , B 中有 id_1 ,id_2 ,C中有 id_2 ,c_2

其中,A的id_1与B的id_1对应,B的id2与C的id_2对应

想做个触发器,A中插入c_1时也插入到C中的c_2

以前没写过,那位能给个模板啊
...全文
1 点赞 收藏 9
写回复
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
dingpiao 2003-12-11
我试试,如果成的话,马上给分
回复
--更新:
create trigger t_insert on a
for update
if update(c_1)
update c set c_2=a.c_1
from b join c on b.id2=c.id_2
join inserted a on a.id_1=b.id_1
go
回复
--id 得对应啊,用:

create trigger t_insert on a
for insert
insert into c select * from inserted
go
回复
dingpiao 2003-12-11
抱歉啊,我说错了,应该是更新而不是插入
回复
--id 得对应啊,用:
create trigger t_insert on a
for insert
insert into select * from inserted
go
回复
dingpiao 2003-12-11
id 得对应啊
回复
yoki 2003-12-11
CREATE TRIGGER tr_ins
ON C
FOR INSERT
AS
BEGIN
insert into C (c_2)
select c_1 from inserted
END
GO
回复
create trigger t_insert on a
for insert
insert into c(c_2) select c_1 from inserted
go
回复
victorycyz 2003-12-11
模板,查询分析器中不是有吗?

IF EXISTS (SELECT name
FROM sysobjects
WHERE name = N'<trigger_name, sysname, trig_test>'
AND type = 'TR')
DROP TRIGGER <trigger_name, sysname, trig_test>
GO

CREATE TRIGGER <trigger_name, sysname, trig_test>
ON <table_name, sysname, pubs.dbo.sales>
FOR INSERT
AS
BEGIN
RAISERROR (50009, 16, 10)
END
GO
回复
发动态
发帖子
MS-SQL Server
创建于2007-09-28

3.2w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
社区公告
暂无公告