Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:programu SQL Server
Istnieje ważna różnica między transakcjami uruchomionymi w Transact-SQL procedur składowanych, a transakcje uruchomione w kodzie zarządzanym: kod środowiska uruchomieniowego języka wspólnego (CLR) nie może równoważyć stanu transakcji podczas wejścia lub zakończenia wywołania CLR. Należy pamiętać o następujących konsekwencjach tej różnicy:
Transakcja uruchomiona wewnątrz ramki CLR musi zostać zatwierdzona lub wycofana lub w przeciwnym razie program SQL Server generuje błąd podczas zamykania ramki.
Nie można zadeklarować lub wycofać zewnętrznej transakcji wewnątrz kodu CLR.
Próba zatwierdzenia transakcji, która nie została uruchomiona w tej samej procedurze, powoduje błąd czasu wykonywania.
Próba wycofania transakcji, która nie została uruchomiona w tej samej procedurze, powoduje, że transakcja przestanie odpowiadać (uniemożliwiająca wykonanie jakiejkolwiek innej operacji niepożądanej). Transakcja kończy się, dopóki kod CLR nie przekroczy zakresu. To zachowanie może być przydatne w przypadku wykrycia błędu wewnątrz procedury i upewnienia się, że cała transakcja zakończy się.