我有一个问题要坚持几个小时。我有3个表,并且我要在表Project上触发一个触发器,以检查是否有人将Leiternr更新为null,只有在Projekt表的Pronr中没有Table MiPro的Mitnr时才能完成
到目前为止,我的情况是这样。但是,当Leitnr大于1为null时,它将不再起作用。从逻辑上讲,这是“ where pro nr =(从projekt3中选择pronr,其中leiternr为null))> 0“
但是我如何实现我想要的?
create trigger Leiternr on projekt3 after update
as
begin
if (select count(*) from mipro3 where pronr = (select pronr from projekt3 where leiternr is null)) > 0
begin
RAISERROR ('Projekt has still Member', 16, 1);
ROLLBACK TRANSACTION;
RETURN
end
结束
答案 0 :(得分:0)
看来您真的很亲密。我认为您只需要将“ =”更改为“ in”即可。这样,您可以比较多个记录。像这样:
create trigger Leiternr on projekt3 after update
as
begin
if (select count(*) from mipro3 where pronr in (select pronr from projekt3 where leiternr is null)) > 0
begin
RAISERROR ('Projekt has still Member', 16, 1);
ROLLBACK TRANSACTION;
RETURN
end