请教SYBASE高手和海阔天空大侠:我的触发器为什么删除(delete)可以,更新(update)不行?

golddigger 2001-12-18 09:28:29
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。
这个问题折磨了我半个月了。
...全文
132 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

2,598

社区成员

发帖
与我相关
我的任务
社区描述
Sybase相关技术讨论区
社区管理员
  • Sybase社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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