Udostępnij przez


Okresy istnienia transakcji

Istnieje ważna różnica uruchomiony w transakcji Transact-SQL procedury przechowywane i tych, które uruchomiono w kodzie zarządzanym: Kod (CLR) w czasie wykonywania języka wspólnego nie unbalance stanu transakcji na wejścia lub wyjścia wywołania środowiska CLR. Należy zwrócić uwagę na następujące implikacje tej różnicy:

  • Uruchomiona wewnątrz ramki CLR transakcji muszą być zatwierdzone lub wycofywany ponownie lub innym SQL Server generuje błąd, gdy ramki jest zakończony.

  • Transakcja zewnętrzna nie może być zatwierdzona ani przywracana wewnątrz kodu środowiska CLR.

  • Podjęto próbę przekazać transakcji nie jest uruchomiona w tej samej procedury powoduje błąd czas wykonania.

  • Próba przywrócenia transakcja nie jest uruchomiona w tej samej procedury powoduje, że transakcja zawieszenie (zapobieganie wszelkie inne dokonujące strony działania z rzędu).Transakcja zaprzestaje aż kod CLR wykracza poza zakresem.Należy zauważyć, że może to być przydatne podczas wykrył błąd w odpowiedniej procedury i chcesz upewnić się, że cała transakcja zostaje zakończone.