设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1742|回复: 2
打印 上一主题 下一主题

[求助]触发器中case的写法?

[复制链接]
跳转到指定楼层
1#
发表于 2005-11-3 17:09:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一张表tblNumber:number(char), shou1(bit), shou2(bit), shou3(bit)

要求根据@KindID,决定update哪个字段,@KindID=1,update shou1,@KindID=2,update shou2

update tblNumber set ???字段=1

不是用触发器,写vba代码,sql语句很好写,用点双引号,就能构造update语句。触发器中能不能用case做到?否则只能是:

if @KindID=1

update tblNumber set Shou1=1

if @KindID=2

update tblNumber set Shou2=1
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
 楼主| 发表于 2005-11-3 17:19:00 | 只看该作者
sql里有没有象select case这种语句
3#
 楼主| 发表于 2005-11-3 18:23:00 | 只看该作者
看看能不能改得简单点,重要的是现在的写法得判断好多的if,直到找到需要的那个才行,如果下面还有语句,return都不能写了,就得判断所有的if语句。我的写法有没有问题?ALTER TRIGGER tblShou_TrgDelete

ON dbo.tblShou

FOR DELETE

AS

declare @Nian char(4)

declare @Number char(3)

declare @KindID int



select @Nian=Nian from tblNian if @Nian=(select Nian from deleted)

begin

  select @Number=Number, @KindID=KindID from deleted  if @KindID=1

  begin

   update tblNumber set Shou1=0 where Number=@Number

   return

  end  if @KindID=2

  begin

   update tblNumber set Shou2=0 where Number=@Number

   return

  end  if @KindID=3

  begin

   update tblNumber set Shou3=0 where Number=@Number

   return

  end  if @KindID=4

  begin

   update tblNumber set Shou4=0 where Number=@Number

   return

  end  if @KindID=5

  begin

   update tblNumber set Shou5=0 where Number=@Number

   return

  end  if @KindID=6

  begin

   update tblNumber set Shou6=0 where Number=@Number

   return

  end  if @KindID=7

  begin

   update tblNumber set Shou7=0 where Number=@Number

   return

  end  if @KindID=8

  begin

   update tblNumber set Shou8=0 where Number=@Number

   return

  end  if @KindID=9

  begin

   update tblNumber set Shou9=0 where Number=@Number

   return

  end

end
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2025-5-4 07:04 , Processed in 0.094022 second(s), 26 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表