SQL触发器:当修改某个指定的字段时,激活触发器 怎么搞?

事实胜于雄辩 2017-05-05 02:36:56
因为之前没写过触发器,于是在 网上看了许多 触发器的例子,都没找到结果。

A表: ID p_id name
1 20 张三
2 25 李四



我想要的是 :当修改 ID =2 的 pro_id字段时 激活触发器。“只有 修改 ID=2 的时候才触发 ,怎么写?
...全文
916 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
事实胜于雄辩 2017-05-05
  • 打赏
  • 举报
回复
引用 2 楼 starfd 的回复:
update触发器,然后判断
create trigger tgr_update
on 你的表名
for update
as
declare @id int
select @id=id
if@id=2
begin
--你的sql
end
大概是这么写吧
我刚写错了,能行 谢谢 两位
事实胜于雄辩 2017-05-05
  • 打赏
  • 举报
回复
引用 1 楼 diaodiaop 的回复:
本身触发器是一直处于激活状态..只是是否执行的问题. 加个判断就行了. 比如

create trigger t on tbl after update as
begin
declare @id int
select @id=id from deleted
if(@id==2)
begin
    --你的逻辑代码
end
end
试了试,也不行
事实胜于雄辩 2017-05-05
  • 打赏
  • 举报
回复
引用 2 楼 starfd 的回复:
update触发器,然后判断
create trigger tgr_update
on 你的表名
for update
as
declare @id int
select @id=id
if@id=2
begin
--你的sql
end
大概是这么写吧
不行阿,没反应。
by_封爱 2017-05-05
  • 打赏
  • 举报
回复
哦 少看了需求 还有pro_id 那就是

if(@id=2 and update(pro_id))
  • 打赏
  • 举报
回复
update触发器,然后判断
create trigger tgr_update
on 你的表名
for update
as
declare @id int
select @id=id
if@id=2
begin
--你的sql
end
大概是这么写吧
by_封爱 2017-05-05
  • 打赏
  • 举报
回复
本身触发器是一直处于激活状态..只是是否执行的问题. 加个判断就行了. 比如

create trigger t on tbl after update as
begin
declare @id int
select @id=id from deleted
if(@id==2)
begin
    --你的逻辑代码
end
end

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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