SQL 外键和触发器的疑问

2025-06-21 05:40:38
推荐回答(3个)
回答1:

外键只是限定B表AID的值必须是A表ID已经存在的值,外键只是一个约束,他不会帮你插入值。但它可以帮你更新或删除列(即当A表某ID更新或删除后,B会随之更新删除)
alter table B add constraint FK_Aid foreign key (Aid) references A(id)
on update cascade | no action
on delete cascade | no action
要想a表插入记录后,b表同时新增一笔必须在A表中建立触发器向b表插入
create trigger 触发器名称 on A after insert
as
begin
set nocount on;
declare @id int
declare @id char
declare @数量 char
declare @单价 char
declare @金额 char
select @AID = ID FROM INSERTED --从插入暂存表中取值,同方法给其他变量取值。

insert b values(@id ,@id,@数量,@单价,@金额 )-- 向b表插入值
end

思路大概是这样,细节你自己去补充一下。祝你成功哦

回答2:

alter table B add constraint FK_Aid foreign key (Aid) references A(id)

把B的Aid作为A的id的外键就可以了

以上,希望对你有所帮助!

回答3:

首先得给表A建立主键id
然后给表B的Aid建立外键

alter table A add constraint pk primary key(id);

alter table B add constraint fk foreign key(Aid) references A(id);