学了SQL的大哥,能告诉我怎样用触发器实现两个表间的参照完整性吗?举个例子.

2025-07-12 09:32:55
推荐回答(1个)
回答1:

我这里有三张表
表1: A_From
字段:Taskid OU_Bit
数据:8162 2
表2: B_From
字段:Taskid Name
数据:8162 张三
表3: C_From
字段:Taskid Code
数据:8162 3000
表1:A_From中的OU_Bit只要更新为2,我就删除表2和表3中对应的Taskid记录(即删除表2和表3中Taskid为8162的所有记录

create trigger t_Temp
on A_From
instead of update
as
begin
declare @bit int,@taskId int
--从临时表中取出更新的数据
select @bit = OU_Bit,@task_id = Taskid from inserted
if @bit = 2
begin
delete B_From where Taskid = @taskId
delete C_From where Taskid = @taskId
end
end