Rozpoczęcie transakcji ROZPROSZONYCH (Transact-SQL)

Określa początek Transact-SQL transakcja rozproszona zarządzanych przez Microsoft Distributed Transaction Coordinator (MS DTC).

Ikona łącza do tematuJęzyka Transact-SQL składni konwencje

Składnia

BEGIN DISTRIBUTED { TRAN | TRANSACTION } 
     [ transaction_name | @tran_name_variable ] 
[ ; ]

Argumenty

  • transaction_name
    Nazwa użytkownika transakcji służy do śledzenia transakcja rozproszona w ramach narzędzia usługi MS DTC.transaction_namemuszą być zgodne z zasadami identyfikatorów i muszą być <= 32 znaków.

  • @tran_name_variable
    To nazwa zmiennej zdefiniowanej przez użytkownika zawierający nazwa transakcji służący do śledzenia transakcja rozproszona w ramach narzędzia usługi MS DTC.Zmienna musi być zadeklarowana z char, varchar, nchar, lub nvarchar typu danych.

Uwagi

wystąpienie Aparat baz danych programu SQL Server wykonywania instrukcji BEGIN TRANSACTION ROZPROSZONYCH instrukcja jest twórca transakcji i kontroluje zakończenia transakcji.Podczas generowania kolejnych lub PRZEKAZAĆ TRANSAKCJĘ ROLLBACK instrukcja dla sesjakontrolowania wystąpienie żądań, że usługi MS DTC zarządzać zakończenia transakcja rozproszona wszystkich zaangażowanych wystąpień.

Transakcja -poziomizolacjimigawka nie obsługuje transakcji rozproszonych. Aby uzyskać więcej informacji, zobacz Wiersz wersji na podstawie poziomów izolacji.

Podstawowy sposób zdalnego wystąpienia Aparat baz danych biorących udział w transakcja rozproszona jest podczas sesja już zarejestrowany w transakcja rozproszona wykonuje zapytanie rozproszone odwoływania się do serwer połączony.

Na przykład, jeżeli rozpoczyna ROZPROSZONEJ transakcji zostało wydane na ServerA, sesja wywołuje procedura składowana na ServerB i inną procedura składowana na ServerC.procedura składowana na ServerC wykonuje zapytanie rozproszone przeciwko ServerD, a następnie wszystkich czterech komputerów są zaangażowane w transakcja rozproszona.wystąpienie Aparat baz danych na ServerA jest pochodzących z kontrolowania wystąpienie dla transakcji.

Sesje zaangażowane w Transact-SQL transakcji rozproszonych nie uzyskać obiekt transakcji można przekazać do innej sesja dla niej jawnie zarejestrować transakcja rozproszona.Jedynym sposobem serwera zdalnego zarejestrować transakcji jest miejsce docelowe zapytanie rozproszone lub wywołanie zdalna procedura składowana .

Po zapytanie rozproszone jest wykonywana w transakcji lokalnej, transakcja zostanie automatycznie podwyższony do transakcja rozproszona , gdy obsługuje miejsce docelowe danych OLE DB źródło ITransactionLocal.Jeśli nie obsługuje miejsce docelowe danych OLE DB źródło ITransactionLocal, tylko operacje odczytu są dozwolone w zapytanie rozproszone.

sesja już zarejestrowany w transakcja rozproszona wykonuje wywołanie zdalna procedura składowana odwoływania się do serwera zdalnego.

Trans zdalnego proc sp_configure opcji kontroli czy wywołań zdalnych procedur przechowywanych w transakcji lokalnej automatycznie powodować transakcji lokalnej wspierane transakcja rozproszona zarządzanych przez usługę MS DTC.Połączenie -poziom zestaw opcji REMOTE_PROC_TRANSACTIONS może służyć do zastąpienia domyślnego wystąpienie ustanowionych przez trans zdalnego proc sp_configure.Ta opcja zestaw wywołanie zdalna procedura składowana powoduje transakcji lokalnej wspierane transakcja rozproszona.Połączenia, który tworzy transakcję MS DTC staje się zleceniodawca dla transakcji.ZATWIERDZENIA transakcji inicjuje usługi MS DTC koordynowane zatwierdzanie.Jeśli trans zdalnego proc sp_configure opcji jest włączone, bez konieczności ponownego pisania aplikacji w szczególności wydawania instrukcji BEGIN TRANSACTION ROZPROSZONYCH zamiast instrukcji BEGIN TRANSACTION wywołania zdalna procedura składowana w transakcji lokalnych automatycznie są chronione jako część transakcji rozproszonych.

Aby uzyskać więcej informacji na temat środowiska transakcja rozproszona i proces zobacz Microsoft dokumentacji usługi Koordynator transakcji rozproszonych.

Uprawnienia

Wymaga członkostwa w public rolę.

Przykłady

W tym przykładzie usuwa kandydujących z AdventureWorks2008R2 bazy danych na obu lokalne wystąpienie Aparat baz danych i wystąpienie na serwerze zdalnym.Zarówno lokalnych i zdalnych baz danych będzie zatwierdzanie lub wycofać transakcji.

Ostrzeżenie

Usługi MS DTC nie jest aktualnie zainstalowany na komputerze, na którym działa wystąpienie Aparat baz danych, ten przykład generuje komunikat o błędzie.Aby uzyskać więcej informacji dotyczących instalowania usługi MS DTC zobacz dokumentację Microsoft Distributed Transaction Coordinator.

USE AdventureWorks2008R2;
GO
BEGIN DISTRIBUTED TRANSACTION;
-- Delete candidate from local instance.
DELETE AdventureWorks2008R2.HumanResources.JobCandidate
    WHERE JobCandidateID = 13;
-- Delete candidate from remote instance.
DELETE RemoteServer.AdventureWorks2008R2.HumanResources.JobCandidate
    WHERE JobCandidateID = 13;
COMMIT TRANSACTION;
GO