sybase触发器操作不同数据急救!!!!

sdsuper 2001-08-29 10:42:11
假设两个数据库a b(两个用户都为sa,都有权限对两个库操作)
a 库中有a1,a2,a3.....多个表
b 库中有b1,b2,b3.....多个表
当对 a 库的a1表进行delete(update,insert)操作时
b库中的b1表进行相应的操作
主要是想知道如何定义不同库表的不同形式
create trigger a_test
on a1
for delete
as
delect from b.b1 where a1.id=b1.id
~~~~ ~~~~~~~~~~~~
这两处不明如何写法。望大家帮助


...全文
118 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
okcai 2001-09-02
  • 打赏
  • 举报
回复
在oracle 中可以用:new和:old这两个行变量
在sybase中有deleted和inserted两个表
给你个例子。可以联系我的。
create trigger a_test
on a..a1
for insert,delete,udpate
as
if exists(select * from inserted) and @rows>=1 --是insert
begin
insert into b..b1 select * from a..inserted I
return
end
if update(a1) --是update
begin

end
if exists(select * from inserted) and @rows>=1 --是delete
begin
delete b..b1
from b..b1 O,a..deleted D
where O.id=D.id
return
end

QQ:3363608
sdsuper 2001-08-29
  • 打赏
  • 举报
回复
前面的问题都好解决的。难办的
for insert & for update
就是说对a库进行insert和update 操作时。b 库也要有相应的操作啊
但是我们对用户更新的字段还不知道呀,难道说还要写个函数把更新的字段
都取出来。这个现在才是我面临的大问题啊。呵呵。望哪位高人给我详细解答
小生这里有理了!!
谢谢
tigerwood12345 2001-08-29
  • 打赏
  • 举报
回复
加PRINT,看看是不是你要的结果。
sdsuper 2001-08-29
  • 打赏
  • 举报
回复
谢谢。我自己这样改了
create trigger a_test
on a1
for delete
as
declare @de varchar(22)
select @de=id from deleted
delect from b.dbo.b1 where b1.dbo.id="@de"
~~~~~~~~~~ ~!~!~!~!
“~~~~~”是对的,但是”~!~!~!“就不知道是不是对的语法了。

devid 2001-08-29
  • 打赏
  • 举报
回复
我用的是sybase , 但是这样的triggle 没写过 。test it :
create trigger a_test
on a1
for delete
as
delect from b..b1 bb where deleted .id= bb.id

2,596

社区成员

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

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