当表中有主外键是的触发器问题
CREATE   TABLE   stduent   ( 
 	ID   int   IDENTITY   (100,   1)   NOT   NULL   , 
 	S_Cod   char   (10)   NOT   NULL   PRIMARY   KEY   , 
 	S_Name   char   (10)   NOT   NULL   , 
 	S_Sex   char   (2)   NULL   DEFAULT   ( '男 ')   , 
 	S_Age   tinyint   NULL   CHECK(S_Age   BETWEEN   16   AND   35), 
 	S_Spe   char   (20)   NOT   NULL    
 )     
 CREATE   TABLE   Sa_curriculum   ( 
 	ID   int   IDENTITY   (10,   1)   NOT   NULL   , 
 	S_Cod   char   (10)   NOT   NULL   FOREIGN   KEY   REFERENCES   stduent(S_Cod)   , 
 	C_Cod   char   (10)   NOT   NULL   , 
 	Sa_Ach   smallint   NOT   NULL, 
 	CONSTRAINT   FK_Sa_C_Dod   FOREIGN   KEY(C_Cod)   REFERENCES   courses(C_Cod) 
 )   
 现在我想建立一个UPDATE触发器,当更新stduent中的S_Cod   的时候   同时更新Sa_curriculum   中的S_Cod   小弟我试了很长的时间都无法作出来,问老师   ,老师说在有主外键的时候   不好做UPDATE触发器--言外知音就是做不出来哦,先请各位高手指点哈。
------解决方案--------------------老师说在有主外键的时候 不好做UPDATE触发器   
 估计老师的意思是,在设置了级联更新和级联删除的时候,做update触发器是不能做的。 
 如果没有设置级联更新和级联删除的时候,用触发器肯定是可以的。   
 create trigger tr_talbeu 
 update 
 as 
 update Sa_curriculum set s_cod = (select s_cod from inserted) 
 where s_cod = (select s_code from stduent where id = (select id from inserted))     
 试下呢。我怕写错语法了^_^
------解决方案--------------------触发器通常是用来检查一些复杂的业务逻辑,或者进行数据的安全检查的,建议楼主可以在这些地方是用触发器。 
 最典型的触发器用法是根据另外一张表的内容,来判断本表的数据修改是否正确,当然如果能使用外键约束完成检查是最好不过的了。
------解决方案--------------------如果一定要用触发器来更新的话,不能用after触发器来更新,应该使用instead of触发器尝试一下。因为SQL SERVER事务执行的顺序是,先执行instead of触发器,然后检查表存在的约束,最后执行after触发器。楼主可以想办法用instead of触发器进行你的工作。不过,我个人觉得表的定义的约束时没有办法绕开的,所以这种方法也不见得可行。 
 说明:SQL SERVER 2000一下版本不支持instead of触发器