Dies ist eher eine allgemeine Frage, aber die Motivation für diese Frage war ein Problem, mit dem ich bei der Verwendung von SQL Server konfrontiert war.
Ich habe diesen Trigger an ein Insert-Ereignis in einer Tabelle angehängt, die eine Logik enthält, die als Nebeneffekt einen Fehler auslösen würde, wenn keine Zeilen eingefügt würden. Bei weiteren Untersuchungen stellte ich fest, dass der Abzug ausgelöst wurde, obwohl keine Zeilen eingefügt wurden.
Die in Microsoft Docs on DML Triggers verwendete Sprache scheint diesem Verhalten zu widersprechen:
DML-Trigger ist eine spezielle Art von gespeicherter Prozedur, die automatisch wirksam wird, wenn ein DML-Ereignis auftritt, das sich auf die im Trigger definierte Tabelle oder Ansicht auswirkt.
Ist dies ein Standardverhalten in DBMS? Gibt es einen bestimmten Grund, einen Trigger auszulösen, wenn keine Zeilen betroffen sind?
quelle