Kontrol eden hareketleri (veritabanı altyapısı)

Uygulamaları esas olarak ne zaman bir hareket başlar ve biter belirterek hareketlerini kontrol eder.Bu da kullanılarak belirtilebilir Transact-SQL ifadeleri veya veritabanı uygulama programı arabirim (API) işlevleri.Sistem aynı zamanda doğru tamamlanmadan önce bir işlemi sonlandırmak hataları işlemek olmalıdır.

Varsayılan olarak, bağlantı hareketleri yönetilen düzey.Bir bağlantı üzerinde bir işlem başladığında tüm Transact-SQL deyimleri çalıştırılır üzerinde olduğunu bağlantı parçası hareket kadar hareket sona erer.Ancak, altında birden çok etkin bir sonuç küme (mars) oturum bir Transact-SQL açık veya örtük işlem toplu düzey. yönetilen toplu iş kapsamlı bir hareket olurToplu iş kapsamlı hareket tamamlandıktan veya geri alınmış, toplu işlem tamamlandıktan sonra otomatik olarak geri alınır SQL Server.

Başlangıç hareketleri

API işlevleri kullanarak ve Transact-SQL deyimleri hareketleri başlayabileceğini bir örnek , SQL Server Veritabanı Altyapısı açık, autocommit olarak veya örtülü hareketleri.Bir mars oturum altında Transact-SQL açık ve Kapalı hareketler haline toplu iş kapsamlı hareketleri.

  • Açık hareketler
    Açıkça Verme yoluyla veya bir API işlev bir hareketi başlatmak Transact-SQL BEGIN TRANSACTION deyim.

  • Autocommit hareketleri
    Varsayılan modunu Veritabanı Altyapısı.Her Transact-SQL deyim tamamlandığında kararlıdır.Bildirisinden denetim işlemleri belirtmek zorunda değildir.

  • Örtülü hareketleri
    Kesin hareketin modunu yoluyla bir API işlev ayarlamak veya Transact-SQL set IMPLICIT_TRANSACTIONS on deyim.Bir sonraki deyim, otomatik olarak yeni bir hareket başlatır.Bu işlem tamamlandığında, sonraki Transact-SQL deyim başlar yeni bir hareket.

  • Toplu iş kapsamlı hareketleri
    Yalnızca birden çok etkin sonuç kümeleri (mars), uygulanabilir bir Transact-SQL açık veya örtük işlem altında bir mars oturum başlatır olacağı bir toplu iş kapsamlı işlem.Kabul edilen veya olmayan bir toplu iş tamamlandığında geri alınmış bir toplu iş kapsamlı işlem otomatik olarak geri alınır SQL Server.

İşlem modları bağlantıdaki yönetilen düzey.Bir bağlantı bir işlem modunu değiştirir, herhangi bir bağlantının işlem modları üzerinde etkisi vardır.

İşlemleri sonlandırma

Hareketleri COMMIT veya rollback deyim ile veya bir API işlev sona erdirebilir.

  • TAMAMLAMA
    İşlem başarılıysa, yürütme onu.Tüm hareketin değişiklikleri veritabanına kalıcı bir parçası yapılan COMMIT deyim garanti eder.Bir TAMAMLAMA de gibi kilit, hareket tarafından kullanılan kaynakları serbest bırakır.

  • GERİ ALMA
    Bir işlemde bir hata oluşursa veya kullanıcı hareketi iptal karar verirse, daha sonra hareketi geri alın.Öğrenmek hareketin başlangıcında olduğu duruma veriyor tarafından yapılan tüm değişiklikleri geri alma deyim yedekler.Bir geri alma işlemi de hareket tarafından tutulan kaynakları serbest bırakır.

Not

Bekleyen istekler için yürütme sırasında etkin birden çok etkin sonuç kümeleri (mars) desteklemek için Bağlantılar'ın altında bir API işlev başlatılan belirtik işlem tamamlanmış olamaz.İçin yapmaya yürütme bu tür çalışan bekleyen işlemler yapılırken bir hata neden olur.

İşlem sınırları belirtme

Ne zaman belirlemek Veritabanı Altyapısı hareketleri başlangıç ve bitiş ile Transact-SQL ifadeler veya API işlevleri ve yöntemleri.

  • Transact-SQLifadeleri
    BEGIN TRANSACTION hareket TAMAMLAMA, iş TAMAMLAMA, rollback İŞLEMİNİ, geri alma iş ve set IMPLICIT_TRANSACTIONS deyimleri hareketleri ayırmak için kullanın.Bunlar öncelikle db Kitaplık uygulamaları ve de kullanılan Transact-SQL kullanarak çalışan komut istemi dosyaları gibi komut istemi dosyaları osql komut istemi satırı yardımcı programı.

  • API işlevleri ve yöntemleri
    Veritabanı gibi odbc, ole db, ado API'ları ve.net Framework SQLClient ad alanı, işlevler veya hareketleri ayırmak için kullanılan yöntemler içerir.Bu hareketleri kontrol etmek için kullanılan birincil mekanizmaları olan bir Veritabanı Altyapısı uygulama.

Her hareket bu yöntemler yalnızca biri tarafından yönetiliyor olması gerekir.Her iki yöntem de aynı işlem kullanarak neden kadar tanımsız sonuçlar.Örneğin, değil odbc API işlevleri kullanarak bir hareket başlatmak ve gerekir sonra Transact-sql COMMIT kullanın deyim hareketi tamamlamak için.Bu bildirim SQL Server odbc sürücüsü hareket taahhüt.Bu durum, odbc kullanan SQLEndTran işlem sonlandırmak için işlev.

Hareket işleme sırasında hata

Bir hata bir işlemin başarıyla tamamlandığını engelliyorsa SQL Server otomatik olarak geri alır hareket ve tarafından tutulan tüm kaynakları serbest bırakırhareket. istemci'S ağ bağlantısı örnek için Veritabanı Altyapısı olduğu kopuk, herhangi bir olağanüstü hareketler için bağlantı toplu geri olduğunda ağ bildirir örneğini sonu.İstemci uygulaması başarısız olursa veya istemci bilgisayarın kapalı ya da yeniden, bu da bağlantı ve örnek sonlarını Veritabanı Altyapısı bekleyen tüm bağlantıları, ağ bildirir, sonu. geri alıristemci uygulaması açarsa, bekleyen işlemlerin geri alınır.

Run-saat (gibi bir kısıtlama ihlali) deyim hata oluşur'de varsayılan davranışı toplu iş iş Veritabanı Altyapısı olan geri almak almak dönmek yalnızca deyim, oluşturulan hata.set xact_abort kullanarak bu davranışı değiştirebilirsiniz deyim.set xact_abort on deyimni yürütüldükten sonra hiçbir çalışma -saat deyim hataya neden olur, geçerli hareket bir Otomatik geri alma işlemi.Sözdizimi hataları gibi derleme hataları set xact_abort tarafından etkilenir.Daha fazla bilgi için bkz: set xact_abort (Transact-sql).

Hatalar oluştuğunda, düzeltici eylem (COMMIT veya rollback) uygulama kodu içinde yer alması gerekir.Hareketleri de dahil olmak üzere, hataları işlemek için etkili araç olan Transact-SQL try…catch yapısı.Hareketleri dahil örnekleri ile daha fazla bilgi için bkz: İşlemek için try...Transact-SQL'de catch ve TRY...CATCH (Transact-SQL).