-----一个简单的触发器问题-------
CREATE   trigger   t_updateStoLoc   on   symix_tbl_PO 
 for   update 
 as 
 begin 
 update   Shelf_Table    
 set   Shelf_Table.NewSto   =   symix_tbl_PO.sto,Shelf_Table.NewLoc   =   symix_tbl_PO.Loc 
 from   inserted   symix_tbl_PO 
 where   Shelf_Table.MaterielNo=symix_tbl_PO.MaterielNo   and      Shelf_Table.LotNo=symix_tbl_PO.LotNo   and   Shelf_Table.ShelfType   =   0       
 end   
 上面的触发器要实现的是, 
 当symix_tbl_PO中的sto和Loc更新时即(update   symix_tbl_PO   set   sto= 'aaa ',Loc= 'bbb 'where   id=100), 
 Shelf_Table的NewSto和NewLoc也同时更新, 
 条件是   Shelf_Table.MaterielNo=symix_tbl_PO.MaterielNo   and      Shelf_Table.LotNo=symix_tbl_PO.LotNo   and   Shelf_Table.ShelfType   =   0      
 问题:写好了上面这个触发器,检查语法显示成功 
 但是却一直是编辑状态(就是显示一支笔在那里)。    
 正常可以用的   应该是一个绿色的+号啊!现在这个触发器一直不起作用, 
 请问怎样才能使这个触发器正常工作呢?触发器哪里有错吗?!!!
------解决方案--------------------LZ的触发条件好象都没有...
------解决方案--------------------问题:写好了上面这个触发器,检查语法显示成功 
 但是却一直是编辑状态(就是显示一支笔在那里)。    
 ___________________________________________________   
 一支笔在那里表示这个触发器是更新触发器,即是由update语句触发的, 
 绿色加号的触发器是insert触发器,是由insert语句触发的, 
 另外:红色叉号是delete语句触发器   
 CREATE trigger t_updateStoLoc on symix_tbl_PO 
 for update   
 楼主定义的触发器不就是update语句触发的么? 
 触发器不起做用,楼主应该另找原因
------解决方案--------------------CREATE trigger t_updateStoLoc on symix_tbl_PO 
 for update 
 as 
 begin 
 	update Shelf_Table  
 	set NewSto = t.sto,NewLoc = t.Loc 
 	from inserted t 
 	where MaterielNo=t.MaterielNo and LotNo=t.LotNo and ShelfType = 0   
 end   
 ---这样试试
------解决方案--------------------create table t_test   
 ( 
 a int , 
 b int , 
 c int    
 ) 
 insert t_test(a,b,c) values(4,4,5)   
 create  trigger t_t on t_test 
 for update  
 as 
 begin 
 if update (b)   
 	update t_test set c=t2.b 
 	from t_test t1 inner join inserted t2 on t1.a=t2.a  	  
 end     
 update t_test set b=7 
 where a=4     
 drop table t_test 
------解决方案--------------------inserted symix_tbl_PO不要把inserted表的另名和实表名一样