用外鍵或Triggercreate trigger tr_a_iud_check on 商品清单表A for insert,update,delete
as
if exists(select * from inserted
where 编码 in (select 编码 from 销售清单表B))
begin
raiserror('can not delete',16,1)
rollback tran
end
as
if exists(select * from inserted
where 编码 in (select 编码 from 销售清单表B))
begin
raiserror('can not delete',16,1)
rollback tran
end
alter table B表 add
CONSTRAINT FK_B表_12345 FOREIGN KEY
(
编码
) REFERENCES A表 (
编码
)否则,只能用触发器了,楼上的触发器有些问题,限制插入、修改了create trigger tr_a_iud_check on 表A for delete
as
if exists(select * from deleted
where 编码 in (select 编码 from 表B))
begin
raiserror('can not delete',16,1)
rollback tran
endcreate trigger tr_a_iud_check on 表A for update
as
if update(编码) and exists(select * from deleted
where 编码 in (select 编码 from 表B))
begin
raiserror('can not update',16,1)
rollback tran
end