当前位置: 代码迷 >> Sql Server >> 请问一个关于触发器的有关问题,多谢
  详细解决方案

请问一个关于触发器的有关问题,多谢

热度:39   发布时间:2016-04-27 11:44:48.0
请教一个关于触发器的问题,谢谢
触发器用的非常少,不多说,上代码
SQL code
CREATE trigger [FC_RK_CLXX_T_update] on [dbo].[FC_RK_CLXX_T]  instead   of  update  as begin      if update(FC_CL_ID) or update(DJ) begin      Update FC_CL_QCKC_T Set FC_CL_ID=i.FC_CL_ID,DJ=i.DJ             From FC_CL_QCKC_T br , Deleted   d ,Inserted i              Where br.FC_RKJL_ID=i.ID     end     end


解释下触发器的作用:当FC_RK_CLXX_T表中的字段FC_CL_ID或者DJ发生变化时,执行该触发器。
现在有这样一个问题:我的FC_RK_CLXX_T表还有另外一个字段SFSH,我需要对这个字段进行修改,但是因为这个触发器的存在,我的这个字段SFSH无法进行修改。求指教,谢谢!!

------解决方案--------------------
SQL code
CREATE trigger [FC_RK_CLXX_T_update] on [dbo].[FC_RK_CLXX_T]  instead   of  update  as begin      if update(FC_CL_ID) or update(DJ) begin      Update FC_CL_QCKC_T Set FC_CL_ID=i.FC_CL_ID,DJ=i.DJ             From FC_CL_QCKC_T br , Deleted   d ,Inserted i              Where br.FC_RKJL_ID=i.ID     end     if update(SFSH) begin      Update FC_CL_QCKC_T Set SFSH=i.SFSH           From FC_CL_QCKC_T br , Inserted i              Where br.FC_RKJL_ID=i.ID     end    end
------解决方案--------------------
SQL code
--這樣建,主鍵換成你的主鍵關聯就可以了CREATE trigger [FC_RK_CLXX_T_update] on [dbo].[FC_RK_CLXX_T]  instead   of  update  as begin      if update(FC_CL_ID) or update(DJ) begin      Update FC_CL_QCKC_T Set FC_CL_ID=i.FC_CL_ID,DJ=i.DJ             From FC_CL_QCKC_T br , Deleted   d ,Inserted i              Where br.FC_RKJL_ID=i.ID     end     if update(SFSH)    update FC_RK_CLXX_T set SFSH=i.SFSH from inserted i        where i.主鍵=FC_RK_CLXX_T.主鍵end
  相关解决方案