Mam inne podejście do odpowiedzi na oba pytania. Generalnie unikam używania wyzwalaczy, dopóki nie jest to ostatni wybór, ponieważ dodaje niepotrzebne obciążenie bazy danych.
Porównanie wyzwalaczy i procedury składowanej
- Łatwo jest przeglądać relacje między tabelami, ograniczenia, indeksy, procedury przechowywane w bazie danych, ale wyzwalacze są trudne do wyświetlenia.
- Wyzwalacze działają niewidocznie dla aplikacji klienckiej. Nie są widoczne lub można je prześledzić w kodzie debugowania.
- Łatwo jest zapomnieć o wyzwalaczach, a jeśli nie ma dokumentacji, będzie to trudne dla nowych programistów do ustalenia ich istnienia.
- Wyzwalacze są uruchamiane za każdym razem, gdy pola bazy danych są aktualizowane i stanowią obciążenie systemu. Sprawia, że system działa wolniej.
Wystarczy powiedzieć, dlatego wolę przechowywane procy. Możesz utworzyć plik zadania (na przykład:jest wykonywany co 30 minut lub w dowolnym innym czasie) za pośrednictwem agenta. Możesz użyć logiki do wstawienia do tego pliku zadania. W ten sposób Twoje dane w tree table
byłby zbliżony do czasu rzeczywistego.
teraz odniesienie do tworzenia agenta :
http://msdn.microsoft.com/en-us/library/ms191128(v=sql.90).aspx
http://msdn. microsoft.com/en-us/library/ms181153(v=sql.105).aspx