请教SYBASE高手和海阔天空大侠:我的触发器为什么删除(delete)可以,更新(update)不行?
SQL语句如下:
/*1*/
go
create table ck_phone
(phone_id char(4) primary key,
phone_yb char(4) not null)
/*2*/
go
create table ck_yb
(yb_code char(2) not null,
yb_ver char(4) not null,
constraint pri_yb primary key(yb_code,yb_ver))
/*建立触发器
1.当表ck_yb有删除,修改时,相应ck_phone 表的记录也修改.*/
go
create trigger cktri_yb1 on ck_yb
for delete as
if @@rowcount=0
return
delete ck_phone from
ck_phone,deleted
where ck_phone.phone_yb=deleted.yb_ver
go
create trigger cktri_yb2 on ck_yb
for update as
declare @num_rows int
select @num_rows=@@rowcount
if @num_rows=0
return
if update(yb_ver)
begin
if @num_rows>1
begin
raiserror 31113 "修改失败!"
rollback transaction
return
end
update ck_phone
set ck_phone.phone_yb=inserted.yb_ver
from ck_phone,inserted,deleted
where ck_phone.phone_yb=deleted.yb_ver
end
使用的是SYBASE SYSTEM 10+PB5。
这个问题折磨了我半个月了。