这条语句执行怎么没效果啊???
create trigger xx
on dbo.brokeblno for update
as
declare @ch_flag char
declare @broke_code char
select @ch_flag=ch_flag,@broke_code=broke_code
from brokeblno
if @ch_flag='0'
update ikeydemo.dbo.ikey
set isstopped=1 
where  vch_code=@broke_code
else
update ikeydemo.dbo.ikey
set isstopped=0 
where  vch_code=@broke_code

解决方案 »

  1.   

    應該是這個問題
    select @ch_flag=ch_flag,@broke_code=broke_code
    from brokeblno 該為select @ch_flag=ch_flag,@broke_code=broke_code
    from inserted
      

  2.   

    create trigger xx
    on dbo.brokeblno for update
    as
    declare @ch_flag char
    declare @broke_code char
    select @ch_flag=ch_flag,@broke_code=broke_code
    from inserted
    if @ch_flag='0'
    update ikeydemo.dbo.ikey
    set isstopped=1 
    where  vch_code=@broke_code
    else
    update ikeydemo.dbo.ikey
    set isstopped=0 
    where  vch_code=@broke_code
      

  3.   

    不晓得怎么还是不行,UPDATE没有效果,
    (所影响的行数为 0 行)
    (所影响的行数为 1 行)
      

  4.   

    (所影响的行数为 0 行)說明你的select 沒有選取到,應該是你的變量的問題,你的變量是char型的,你brokeblno表的ch_flag字段也是char型的嗎?
    或者試試變量賦varchar(20)型的,然後rtrim(ch_flag)
    declare @ch_flag varchar(20)
    declare @broke_code varchar(20)
    select @ch_flag=rtrim(ch_flag),@broke_code=rtrim(broke_code)
    from inserted