To zależy w dużej mierze od tego, co robisz w przechowywanych procach. Jednak dobrym pomysłem jest użycie transakcji, jeśli wykonujesz wiele wstawień/aktualizacji lub usuwasz w jednym proc. W ten sposób, jeśli jedna część się nie powiedzie, pozostałe części zostaną wycofane, pozostawiając bazę danych w spójnym stanie.
Dwie najważniejsze kwestie, które należy wziąć pod uwagę podczas zapisu do bazy danych (a więc podczas korzystania z przechowywanego procesu, który wykonuje działanie inne niż wybrane), to integralność i wydajność danych. Bez integralności danych, masz tylko bazę danych, która zawiera śmieci i jest bezużyteczna. Bez performacne nie będziesz miał użytkowników (jeśli są poza klientami) lub nieszczęśliwych użytkowników (jeśli są upoważnieni do korzystania z twojego produktu, zwykle użytkownicy wewnętrzni, którzy nie mają wyboru, aby pójść gdzie indziej). Żadne z nich nie jest dobre dla twojej kariery. Tak więc, pisząc przechowywany proc, upewnij się, że najpierw upewnisz się, że dane zostaną poprawnie wprowadzone do bazy danych i że zawiedzie, jeśli wystąpi problem w jednej części akcji.
W razie potrzeby sprawdź, czy Twój wynik końcowy jest poprawny. Jestem specjalistą od ETL i zawsze piszę swoje procenty, aby dane zostały wyczyszczone i znormalizowane, zanim spróbuję zaimportować je do moich tabel. Jeśli robisz różne rzeczy z poziomu interfejsu użytkownika, może to nie być tak ważne, aby zrobić inthe proc, chociaż chciałbym, aby inteface użytkownika wykonał kontrole przed uruchomieniem procesu, aby upewnić się, że dane są dobre dla wstawki (rzeczy takie jak sprawdzanie, aby upewnić się, że pole daty zawiera rzeczywistą datę, że wszystkie wymagane pola mają wartości itd.)
Jeśli piszesz procsy, aby umieścić duże ilości danych w tabelach, najlepiej jest mieć sposób na przetestowanie tych wyników przed ich sfinalizowaniem . Byłbyś zaskoczony śmieciami, które otrzymasz od klientów i dostawców w celu importu danych. Piszemy wszystkie nasze procenty importu z flagą testową. W ten sposób możesz zwrócić wybrane dane zamiast wykonać akcję, dzięki czemu możesz zobaczyć z wyprzedzeniem dokładnie to, na co miałbyś wpływ.
Nie jestem fanem dynamicznego SQL i wolę nie używać go w przechowywanych procach. Jeśli utkniesz w dynamicznym SQl w istniejących procach, wstaw flagę debugowania, która pozwoli ci wydrukować SQL zamiast go wykonać. Następnie umieść w komentarzach najbardziej typowe przypadki, które trzeba będzie uruchomić. Przekonasz się, że możesz utrzymać proces znacznie lepiej, jeśli to zrobisz.
Nie rób rzeczy po kursie, tylko dlatego, że chcesz ponownie użyć innego zapisanego procesu, który działa tylko na jednej płycie w danym momencie. Ponowne użycie kodu, które powoduje problemy z wydajnością, jeśli coś złego.
Jeśli używasz instrukcji case lub instrukcji, upewnij się, że wykonałeś test, który trafi w każdą możliwą gałąź. Ten, którego nie przetestujesz, nie zawiedzie.
To jest podobne do powiedzenia: "Napisałem opowiadania, ale chcę napisać dobrze wykonane, bestsellery i powieści dla wszystkich rodzajów czytelników, a także chciałbym poznać jakieś sztuczki lub dobre praktyki pisania opowiadań." Może być bardziej konkretny w tym, czego szukasz ... –
Uzgodnione, bardziej szczegółowe pytania byłyby dobre. – ahockley