Aracılığıyla paylaş


Hareketleri Transact-SQL Distributed

Başlangıç dağıtılmış işlemlerTransact-SQLoldukça basit bir yapıya sahiptir:

  1. ATransact-SQLkomut dosyası veya uygulama bağlantı yürüten birTransact-SQLbaşlayan deyim bir dağıtılmış işlem.

  2. örnek,SQL Server Database EngineDeyim Yürütme olur kontrol eden sunucu işlemi.

  3. Komut dosyası veya uygulama bağlantılı sunucuları dağıtılmış sorgular ya da uzak, uzak sunucularda saklı yordamlar yürütür.

  4. Gibi dağıtılmış sorgular ve uzak yordam çağrıları yapılır, Denetim sunucu otomatik olarak ararMicrosoftdağıtılmış işlem Düzenleyici bağlı ve uzak sunucuları listeleme (MS DTC) dağıtılmış işlem.

  5. Ne zaman komut dosyası veya uygulama sorunları ya da bir COMMIT veya ROLLBACK deyim, Denetim örnekSQL ServerMS DTC iki aşamalı yürütme işlemini yönetmek veya geri almak almak dönmek bağlantılı ve uzak sunuculara bildirmek için çağrı, hareketler.

Gerekli Transact-SQL deyimleri

The Transact-SQL statements controlling the distributed transactions are few because most of the work is done internally by the SQL Server Database Engine and MS DTC.YalnızcaTransact-SQLgerekli ifadelerTransact-SQLkomut dosyası veya uygulama olduğu için gerekli olanlar:

  • Başlangıç bir dağıtılmış işlem.

  • Bağlantılı sunucuları dağıtılmış sorgular gerçekleştirmek veya yürütmek uzak yordam çağrıları uzaktaki sunucularda.

  • Standart aramaTransact-SQLyürütme TRANSACTION, WORK yürütme, ROLLBACK TRANSACTION veya ROLLBACK WORK ifadeleri tam hareket.

    Tüm içinTransact-SQLDağıtılmış işlem, örnekDatabase EngineişlemeTransact-SQLkomut dosyası veya bağlantı otomatik olarak düzenlemesini taahhüdü veya geri hareket. MS DTC'ye çağırır

Dağıtılmış işlemler başlatılıyor

Dağıtılmış hareketleri başlatmakTransact-SQLaşağıdaki yöntemlerle:

  • Başlangıç açık dağıtılmış işlem kullanarak dağıtılmış hareket BEGIN deyim.

    Ayrıca yürütmek dağıtılmış bir bağlantılı sunucu sorgusu.örnek,Database Enginebağlı çağrıları MS DTC'yi yönetme dağıtılmış işleme ile bağlantılı.Ayrıca, uzak uzak saklı yordam çağırabilirsiniz örnek,Database Enginebir parçası olarak dağıtılmış işlem.

  • Ancak, yerel bir işlem yürütmek dağıtılmış sorgu.

    , OLE DB veri kaynak destekleyenITransactionJoin Sorgu olsa bile, bir salt okunur sorgusu. arabirim, hareket için bir dağıtılmış işlem yükseltilir Veri kaynağını desteklemiyorITransactionJoin, yalnızca salt okunur ifadeleri verilir.

  • , küme REMOTE_PROC_TRANSACTIONS ON çalıştırılır ve yerel bir işlem başka bir örneğinde uzak saklı yordam çağrılarıDatabase Engineyerel işlem yükseltilmiş dağıtılmış bir işlem.

    The Database Engine uses MS DTC to coordinate the transaction with the remote server.REMOTE_PROC_TRANSACTIONS kapalı olarak ayarlanırsa, uzak saklı yordam çağrılarını kapsam dışında yerel işlem yürütülür.Yerel işlem geri döndürülüyor, uzak yordam tarafından yapılan çalışma döndürülmez.Uzak saklı yordam tarafından gerçekleştirilen iş yordamı tamamlandığında, yerel işlem tamamlanmış olmadığında saat önem vermektedir.

The REMOTE_PROC_TRANSACTIONS seçeneği, yalnızca uzak saklı yordam çağrıları kullanılarak tanımlanan uzak sunuculara yapılan etkileyen bir uyumluluk seçeneğisp_addserver.Dağıtılmış sorgular bir saklı yordam kullanılarak tanımlanmış bir bağlantılı sunucu üzerinde çalıştırmak için seçeneği uygulanmazsp_addlinkedserver.Dağıtılmış sorgular hakkında daha fazla bilgi için bkz:Dağıtılmış sorgular.