【发布时间】:2019-03-30 14:14:18
【问题描述】:
我有几个小时的问题。我有 3 个表,我想在表 Project 上设置一个触发器,以检查是否有人将 Leiternr 更新为 null 它只能在 Projekt 表的 Pronr 没有来自 Table MiPro 的 Mitnr 时完成
到目前为止,我所拥有的是这个。但是当超过 1 个 Leitnr 为空时,它就不再起作用了。从逻辑上讲,这在逻辑上是“在哪里亲”的原因 nr = (从 projekt3 中选择 pronr,其中 leiternr 为空)) > 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
结束
【问题讨论】:
-
首先,只有您知道“不起作用”是什么意思。请明确点。接下来,您包含 3 个表格的 IMAGE - 但其中一个似乎完全没有意义。是吗?最后,不要将重要信息发布为图像。对于这样的问题,需要查看所涉及的表的 DDL,以了解表之间的关系。将其作为脚本执行 - 其中包括插入语句形式的示例数据。看来你需要测试是否存在——据我所知,没有必要计算任何东西。但是你的描述不清楚。
-
抱歉给我带来了麻烦。是的,其中一张桌子毫无意义。我刚刚添加了这个表来完成。我认为图片比DDL更好。但是,是的,我本可以添加理由:/感谢您的提示。欢呼
标签: sql-server tsql database-trigger