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

戒烟戒酒戒编程 2012-07-31 10:08:50
触发器用的非常少,不多说,上代码

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无法进行修改。求指教,谢谢!!
...全文
54 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
谢谢各位,搞定了,原来这么简单。
人生无悔 2012-07-31
  • 打赏
  • 举报
回复

--這樣建,主鍵換成你的主鍵關聯就可以了
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


  • 打赏
  • 举报
回复
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



  • 打赏
  • 举报
回复

CREATE trigger [FC_RK_CLXX_T_update] on [dbo].[FC_RK_CLXX_T]
instead of update
as begin

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
if update

end
人生无悔 2012-07-31
  • 打赏
  • 举报
回复
不好意思,看錯了
人生无悔 2012-07-31
  • 打赏
  • 举报
回复
即使有這個trigger也是可以直接更改的

你試下
begin tran
update FC_RK_CLXX_T set SFSH='測試值';
select SFSH from FC_RK_CLXX_T;
rollback tran;

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧