2011-11-01 7 views
16

Łączę się z serwerem SQL bez automatycznego zatwierdzania. Jeśli wszystko się powiedzie, zadzwonię do zatwierdzenia. W przeciwnym razie po prostu wychodzę. Czy muszę jawnie wywoływać wycofywanie zmian, czy też zostanie ono automatycznie wycofane, gdy zamkniemy połączenie bez popełnienia błędu?Czy muszę wywoływać wycofywanie, jeśli nigdy nie zatwierdzam?

Jeśli jest to ważne, uruchamiam polecenia SQL z poziomu sql w SAS.

UPDATE: Wygląda SAS może wezwać popełnić automatycznie na końcu bloku proc sql wycofywania jeśli nie jest tzw. Tak więc w tym przypadku wycofanie byłoby czymś więcej niż dobrą praktyką; byłoby to konieczne.

Ostateczna aktualizacja: Skończyło się na przejściu na nowy system, który wydaje mi się zachowywać przeciwieństwo poprzedniego. Po zakończeniu transakcji bez określenia popełnienia lub wycofania, wycofa się. Tak więc poniższe porady są zdecydowanie poprawne: zawsze jawnie zatwierdzaj lub wycofuj.

Odpowiedz

7

To powinien wycofać się na zamknięcie połączenia. Podkreślenie powinno być z jakiegoś powodu :-)

Prawidłowe zarządzanie transakcjami i błędami powinno być zawsze zatwierdzane, gdy warunki zatwierdzenia są spełnione i wycofywane, gdy nie są. Myślę, że to wielki nawyk, aby zawsze zatwierdzać lub wycofywać po zakończeniu i nie polegać na rozłączeniu/etc. Wystarczy jeden błąd lub niepoprawnie zamkniętą sesję, aby stworzyć koszmar dla wszystkich blokujących :-)

+1

Co ma wpływ na to połączenie połączeń? –

+0

Jeśli zarządzasz swoimi transakcjami mając na uwadze najlepsze praktyki, nie powinieneś się martwić, @JoeStefanelli :-) Co mam na myśli - 1.) w Twojej transakcji tak szybko, jak to tylko możliwe - rób tylko to, co jest w niej konieczne aby utrzymać mały ślad i uderzenie, oraz 2.) Właściwa obsługa błędów i czyszczenie w celu zatwierdzenia, gdy zrobisz to dobrze, a wycofanie, gdy nie. Nie zaakceptuję zmian w środowisku, którym zarządzam, jeśli narusza te dwie podstawowe zasady. Zatem łączenie połączeń nie będzie tam miało wpływu. –

+0

Uzgodniono, że najlepiej zrobić własne wyraźne zatwierdzenie, gdy wszystko jest zrobione dobrze. Moje pytanie było bardziej skierowane na odpowiedź "*** powinna *** przywrócić bliskie połączenie". –