日期:2014-05-17  浏览次数:20540 次

sql server2000触发器问题
同一数据库有表a,表b;
a表字段结构:编号(int)  名称(varchar(20)) 委托单号(varchar(20)) 手机(varchar(11)) 状态(varchar(10))
               1          a1                  N001               13812345678         在检
               2          a2                  N001               13812345678         完检
               3          b11                 N005               13887654321         完检
               4          b12                 N005               13887654321         完检
               5          c1                  N005               13887654321         完检
               6          b111                N123               13887654320         完检

b表字段结构:id(int)     委托单号(varchar(20))   手机(varchar(11)) 
  

现在要求在a表写一触发器,相同委托单号的记录,如果状态均为‘完检’则将a表中的委托单号和手机写入b表中
上例的依据a表记录要求得到的b表记录如下
委托单号    手机
N005       13887654321
N123       13887654320                  


         
------最佳解决方案--------------------
create trigger tri_insert 
on [9DEC_goods]
for insert
as
begin
declare @id varchar(300),@num int,@num2 int
set @num=0
set @num2=0
select @id=委托单号 from inserted
select @num=count(1) from 表a where 委托单号=@id 
select @num2=count(1) from 表a where 委托单号=@id and 状态='完检'
if @num != 0
begin
 if @num=@num2
begin
--插入表2
end 
end

end