Domanda

Il mio supervisore è riluttanti a utilizzare un trigger in un processo, perché se si verifica un'interruzione di rete proprio al momento giusto, il processo non sarebbe completa. Non SQL Server includono il grilletto nella transazione del procedimento di chiamata? Se no, qual è il modo migliore per attuare questo?

È stato utile?

Soluzione

Sì. Trigger si verificano come una transazione annidata implicita nell'ambito della transazione del chiamante. Il trigger si impegnerà o posteriore rotolo come parte di questa transazione.

Si veda:

Altri suggerimenti

Ci sono un bel paio di situazioni in cui i trigger non lo fanno fuoco, come ad esempio:

  • Una tabella viene eliminata.

  • Una tabella viene troncata.

  • Impostazioni per i trigger nidificati e / o ricorsive impedire un trigger di sparare.

Quindi, in SQL Server un trigger è non garantito da eseguire. A volte può essere bypassato.

Anche un trigger può essere solo corretto. In entrambi i casi, si può finire con gli orfani nel database.

Se pubblichi ciò che si sta cercando di realizzare con il trigger, forse ci può aiutare a implementare con vincoli.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a dba.stackexchange
scroll top