Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Pourquoi le déclencheur d'insertion est-il appelé lorsqu'il n'y a pas de données à insérer ?

Parce qu'ils sont documentés le faire ?

(Mon emphase )

Cela n'a peut-être pas de sens, mais cela coûterait peut-être plus de temps et d'efforts de développement à Microsoft pour créer un chemin de code spécial qui supprime les déclencheurs lorsqu'il s'avère qu'aucune ligne n'est affectée.

C'est juste un autre exemple où vous devez concevoir des déclencheurs avec soin pour gérer inserted et deleted contenant potentiellement 0, 1 ou plusieurs lignes.

(De plus, d'un point de vue relationnel, les ensembles ne contenant aucun tuple peuvent toujours être intéressants à certains moments)