Transakcje rozproszone Transact-SQL

Transakcje rozproszone uruchomiony w Transact-SQL strukturę stosunkowo proste:

  1. A Transact-SQL wykonuje skrypt lub aplikację połączenia Transact-SQL instrukcja, która uruchamia transakcja rozproszona.

  2. Wystąpienie Aparat baz danych programu SQL Server wykonywania instrukcja staje się serwerem kontrolującego w transakcji.

  3. Skrypt lub aplikacja wykonuje kwerend rozproszonych serwerów połączonych albo zdalnych procedur przechowywanych na serwerach zdalnych.

  4. Jak wykonywane są kwerendy rozproszone i zdalnych wywołań procedury, kontrolowanie serwer automatycznie wywołuje Microsoft transakcja rozproszona Coordinator (MS dtc), aby zarejestrować serwery połączone i zdalnego w transakcja rozproszona.

  5. Po instrukcja zatwierdzanie lub ROLLBACK kontrolowania wystąpienie problemów skryptu lub aplikacji SQL Server wywołania MS DTC do zarządzania zatwierdzanie dwufazowe procesu lub do powiadamiania serwerów połączonych i zdalnego do przywrócenia ich transakcje.

Instrukcje wymagane Transact-SQL

Transact-SQL Instrukcje kontrolowanie transakcje rozproszone są kilka, ponieważ większość pracy odbywa się wewnętrznie przez Aparat baz danych programu SQL Server i MS DTC.Jedynym Transact-SQL sprawozdań, wymaganych w Transact-SQL skryptu lub aplikacji są wymagane do:

  • Uruchom transakcja rozproszona.

  • Wykonywanie kwerend rozproszonych serwerów połączonych lub wykonać zdalnego wywołania procedury na serwerach zdalnych.

  • Wywołanie standard Transact-SQL zatwierdzenia transakcji, ZATWIERDZIĆ pracy, TRANSAKCJĘ ROLLBACK lub instrukcje pracy WYCOFYWANIA do ukończenia transakcji.

    Dla każdego Transact-SQL transakcja rozproszona, wystąpienie Aparat baz danych przetwarzania Transact-SQL skrypt lub połączenia automatycznie wywołania MS DTC do koordynowania zobowiązań lub wycofać transakcji.

Uruchamianie transakcji rozproszonych

Można uruchomić transakcji rozproszonych w Transact-SQL w następujący sposób:

  • Uruchomić rozproszonej transakcji jawnej za pomocą instrukcja rozpoczęcia transakcja rozproszona.

    Można również wykonać, zapytanie rozproszone przeciwko serwer połączony.Wystąpienie Aparat baz danych podłączeniu do wywołania MS DTC do zarządzania transakcja rozproszona z serwer połączony.Można również wywołać zdalnych procedur przechowywanych na zdalnego wystąpienie Aparat baz danych jako część transakcja rozproszona.

  • W transakcji lokalnej wykonać kwerendzie rozproszonej.

    Jeśli źródło danych OLE DB obsługuje ITransactionJoin interfejs transakcji jest podnoszony do transakcja rozproszona, nawet jeśli kwerenda jest kwerendą tylko do odczytu.Jeśli źródło danych nie obsługuje ITransactionJoin, dozwolone są tylko w sprawozdaniu tylko do odczytu.

  • Jeśli USTAWIONA na REMOTE_PROC_TRANSACTIONS została wykonana i wywołuje transakcji lokalnej zdalna procedura składowana na inne wystąpienie Aparat baz danych, transakcji lokalnej jest podnoszony do transakcja rozproszona.

    Aparat baz danych Używa usługi MS DTC do koordynowania transakcji z serwera zdalnego.Wykonywanie wywołań zdalnych procedur przechowywanych poza zakres transakcji lokalnej, jeśli jest REMOTE_PROC_TRANSACTIONS zestaw do OFF.Prace wykonane przez procedurę zdalnego nie jest wycofywany Jeśli przywracana transakcji lokalnej.Pracę wykonaną przez zdalny procedura przechowywana jest zaangażowana w czas zakończeniu procedury nie podczas transakcji lokalnej jest zaangażowana.

Opcja REMOTE_PROC_TRANSACTIONS jest opcja zgodnooci, która wpływa tylko na zdalna procedura składowana wywołań zdalnych serwerów zdefiniowane przy użyciu sp_addserver.Opcja nie dotyczy kwerend rozproszonych, które wykonać procedura składowana serwer połączony zdefiniowane przy użyciu sp_addlinkedserver.Aby uzyskać więcej informacji na temat kwerend rozproszonych Zobacz Kwerend rozproszonych.