可以用约束处理或触发器控制:--触发器: create trigger tr_test on spj for insert,update as if exists(select 1 from inserted where isnull(sno,'')='' or isnull(pno,'')='' or isnull(jno,'')='') begin raiserror('添加或修改的记录无效,请重新输入.',16,1) rollback end go其实更建议在程序中实现。
create trigger tr_SPJ on SPJ for insert,update as if not exists(select 1 from inserted a join s on a.sno=s.sno join p on a.pno=p.pno join j on a.jno=j.jno) begin raiserror('添加或修改的记录无效,请重新输入.',16,1) rollback end go
create trigger tr_test on spj
for insert,update
as
if exists(select 1 from inserted where isnull(sno,'')='' or isnull(pno,'')='' or isnull(jno,'')='')
begin
raiserror('添加或修改的记录无效,请重新输入.',16,1)
rollback
end
go其实更建议在程序中实现。
s1 ... ..
s2 .. ..
pno pname color
p1 .. ...
p2 . .. jno jname city
j1 ,, ..
j2 .. ..sno pno jno rty
s1 p2 j3 .
s2 p1 j3 ..
4个表大概就是这样的
for insert,update
as
if not exists(select 1 from inserted a join s on a.sno=s.sno join p on a.pno=p.pno join j on a.jno=j.jno)
begin
raiserror('添加或修改的记录无效,请重新输入.',16,1)
rollback
end
go