Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Warum wird der Insert-Trigger aufgerufen, wenn keine Daten einzufügen sind?

Weil sie dokumentiert sind tun?

(Meine Betonung )

Vielleicht macht es wenig Sinn, aber vielleicht würde es Microsoft mehr Zeit und Entwicklungsaufwand kosten, einen speziellen Codepfad zu erstellen, der die Trigger unterdrückt, wenn sich herausstellt, dass keine Zeilen betroffen sind.

Dies ist nur ein weiteres Beispiel, bei dem Sie Trigger sorgfältig entwerfen müssen, um mit inserted umzugehen und deleted möglicherweise 0, 1 oder viele Zeilen enthalten.

(Auch aus relationaler Sicht können Mengen, die keine Tupel enthalten, manchmal immer noch interessant sein)