Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Genera automaticamente il valore della gerarchia

Ho un approccio diverso per rispondere a entrambe le domande. In genere evito di utilizzare i trigger fino a quando non è l'ultima scelta in quanto aggiunge un sovraccarico non necessario sul database.

Confronto tra trigger e stored procedure

  • È facile visualizzare le relazioni tra tabelle, i vincoli, gli indici, la procedura memorizzata nel database, ma i trigger sono difficili da visualizzare.
  • I trigger vengono eseguiti in modo invisibile all'applicazione dell'applicazione client. Non sono visibili o possono essere tracciati nel codice di debug.
  • È facile dimenticare i trigger e se non c'è documentazione sarà difficile da capire per i nuovi sviluppatori per la loro esistenza.
  • I trigger vengono eseguiti ogni volta che i campi del database vengono aggiornati e il suo sovraccarico sul sistema. Rende il sistema più lento.

Detto questo, ecco perché preferisco i processi archiviati. È possibile creare un file di lavoro (ad esempio, ad esempio:viene eseguito ogni 30 minuti o in qualsiasi altro momento) tramite l'agente. È possibile utilizzare la logica per l'inserimento in quel file di lavoro. In questo modo i tuoi dati nella tree table sarebbe quasi in tempo reale.

ora riferimento per creare un agente :
http://msdn.microsoft.com/en-us/library/ms191128(v=sql.90).aspx
http://msdn. microsoft.com/en-us/library/ms181153(v=sql.105).aspx