注册 登录
编程论坛 SQL Server论坛

[求助]触发器的问题

小水滴 发布于 2007-03-30 14:24, 741 次点击
现有二个表:
create table t1
(t1_id char(5) primary key,
bb char(10) )

create table t2
(t2_id char(5) primary key,
t1_id char(12) references t1(t1_id) )

现要编制一个触发器,当修改t1表t1_id列时,t2中的t1_id列也随之修改. 该如何编呢?请教各位.
3 回复
#2
棉花糖ONE2007-03-30 15:30

if Update,楼主去查查这个的帮助
对特定列的更改进行测试
触发器定义中的 IF UPDATE (列名)子句可用来确定 INSERT 或 UPDATE 语句是否影响到表中的一个特定列。无论何时,当列被赋值时,该子句即为 TRUE。

说明 由于列中的特定值无法使用 DELETE 语句删除,IF UPDATE 子句也就不能应用于 DELETE 语句。


或者可以用 IF COLUMNS_UPDATED() 子句检查表中已用 INSERT 或 UPDATE 语句更新的列。该子句使用整型位掩码指定需测试的列。有关更多信息,请参见 CREATE TRIGGER。

#3
小水滴2007-03-30 16:01
版主所谈到的有关列级触发器的知识我知道,问题在于t2表中的t1_id列是t1表的外键,触发器被触发时报错.

如果删除外键的话,我担心t2表会出现非法数据.

[此贴子已经被作者于2007-3-30 16:13:57编辑过]

#4
棉花糖ONE2007-03-30 16:35
没想到办法,我本想在改数据之前先把外键约束给禁用,等到改完再把外键约束启用,但是alter table 的命令在触发器中竟然不起作用
1