SQL Server 2000 Trigger 请教 本帖最后由 jeff_hua 于 2010-12-07 10:18:56 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 create trigger tri_name on tafor updateasinsert tb select * from inserted --inserted是修改后的数据 修改前的可以用deleted 这里可以把 Insert Update Delete 的数据都一起涵盖? 参考:--触发器的操作1create table 化验室纱组(本厂编号 int,客户 int,色号 int,纱支 int)create table 化验室布组(本厂编号 int,客户 int,色号 int,布类 int)gocreate trigger my_trig on 化验室纱组 for insert ,update ,deleteasif not exists(select 1 from inserted) delete 化验室布组 from deleted t where 化验室布组.本厂编号 = t.本厂编号 else if not exists(select 1 from deleted) insert into 化验室布组(本厂编号 ,客户 ,色号) select 本厂编号 ,客户 ,色号 from insertedelse update 化验室布组 set 客户 = t.客户 , 色号 = t.色号 from inserted t where 化验室布组.本厂编号 = t.本厂编号go--1、insert 对化验室纱组插入数据,然后查看化验室布组表的数据insert into 化验室纱组 values(1 , 2 , 3 , 4)insert into 化验室纱组 values(5 , 6 , 7 , 8)goselect * from 化验室布组/*本厂编号 客户 色号 布类 ----------- ----------- ----------- ----------- 1 2 3 NULL5 6 7 NULL(所影响的行数为 2 行)*/--2、update , 更改化验室纱组表中本厂编号=1的色号=6update 化验室纱组 set 色号 = 6 where 本厂编号 = 1goselect * from 化验室布组/*本厂编号 客户 色号 布类 ----------- ----------- ----------- ----------- 1 2 6 NULL5 6 7 NULL(所影响的行数为 2 行)*/--3、delete 化验室纱组表中本厂编号=1的那条数据delete from 化验室纱组 where 本厂编号 = 1goselect * from 化验室布组/*本厂编号 客户 色号 布类 ----------- ----------- ----------- ----------- 5 6 7 NULL(所影响的行数为 1 行)*/drop table 化验室纱组 , 化验室布组 如何连接XP系统上SQL Server 2000开发版? 这个SQL语句如何写? 如何写一个trigger ,当表一有数据插入时,同时将插入的数据插到另一张表中 数据a-z排序 还是关于数据导出导入,我搞不定! 请教一个sql查询问题 问一个SQL的查询 sql的难题 重装系统后文件打不开了,那位朋友帮忙,表示感谢了。 如何实现下述功能的SQL语句? sql查询问题 分页问题
for update
as
insert tb select * from inserted --inserted是修改后的数据 修改前的可以用deleted
create table 化验室布组(本厂编号 int,客户 int,色号 int,布类 int)
go
create trigger my_trig on 化验室纱组 for insert ,update ,delete
as
if not exists(select 1 from inserted)
delete 化验室布组 from deleted t where 化验室布组.本厂编号 = t.本厂编号
else if not exists(select 1 from deleted)
insert into 化验室布组(本厂编号 ,客户 ,色号) select 本厂编号 ,客户 ,色号 from inserted
else
update 化验室布组 set 客户 = t.客户 , 色号 = t.色号 from inserted t where 化验室布组.本厂编号 = t.本厂编号
go--1、insert 对化验室纱组插入数据,然后查看化验室布组表的数据
insert into 化验室纱组 values(1 , 2 , 3 , 4)
insert into 化验室纱组 values(5 , 6 , 7 , 8)
go
select * from 化验室布组
/*
本厂编号 客户 色号 布类
----------- ----------- ----------- -----------
1 2 3 NULL
5 6 7 NULL(所影响的行数为 2 行)
*/--2、update , 更改化验室纱组表中本厂编号=1的色号=6
update 化验室纱组 set 色号 = 6 where 本厂编号 = 1
go
select * from 化验室布组
/*
本厂编号 客户 色号 布类
----------- ----------- ----------- -----------
1 2 6 NULL
5 6 7 NULL(所影响的行数为 2 行)
*/--3、delete 化验室纱组表中本厂编号=1的那条数据
delete from 化验室纱组 where 本厂编号 = 1
go
select * from 化验室布组
/*
本厂编号 客户 色号 布类
----------- ----------- ----------- -----------
5 6 7 NULL(所影响的行数为 1 行)
*/drop table 化验室纱组 , 化验室布组