创建触发器的问题,急!
我有两个数据库,其中一个数据库的数据表是另外一个数据库数据表的子集(拥有其相应数据表的某些或全部字段)
现在我想创建基于update,delete的触发器,当我更改超集数据库中某个数据表时,子集数据库的相应数据表会作相应的改变。
但问题是 子集数据表怎么知道我更改了超集数据表的那些字段的数据呢?
同理,删除超集数据表某些数据时,子集数据库又如何知道我删除了超集数据库的那些数据呢?
问题点数:0、回复次数:6Top
1 楼pengdali()回复于 2003-06-02 23:15:34 得分 0
你有编号等主键吗??
CREATE TRIGGER 名2 ON 主表
FOR update
AS
update 子表 set 列=aa.列 from inserted aa where aa.编号=子表.编号
CREATE TRIGGER 名3 ON 主表
FOR delete
AS
delete 子表 where 编号 in (select 编号 from deleted)Top
2 楼pengdali()回复于 2003-06-02 23:17:20 得分 0
你好象不知道有inserted和deleted两个系统临时表
举例:
create table 表 (a int)
go
insert 表 values (1)
go
CREATE TRIGGER 名 ON 表
FOR UPDATE
AS
select a 更新前被删除的数据 from deleted
select a 更新后被插入的数据 from inserted
go
------------测试:
update 表 set a=3Top
3 楼xiaxuan92021(轩辉)回复于 2003-06-03 00:19:22 得分 0
设置级连删除不就可以拉Top
4 楼liuyun2003(流云(老老实实做人,认认真真还贷))回复于 2003-06-03 08:35:38 得分 0
只要在同一数据库服务器上,处理很容易的。Top
5 楼liuyun2003(流云(老老实实做人,认认真真还贷))回复于 2003-06-03 08:38:51 得分 0
呵呵,按 错钮发出去了。你只要和正常一样建立触发器就可以了。不过在修改另外一个表的时候,不要忘记给他加上前缀就可以了。前缀格式为库名.所有者.表名Top
6 楼liunini(妮妮)回复于 2003-06-03 15:04:25 得分 0
级联删除方便Top




