Aracılığıyla paylaş


Işlemler (Veritabanı Altyapısı) denetleme

Uygulamalar, genelde bir işlem başlar ve biter belirterek hareketleri denetler.Bu kullanılarak belirtilebilir. Transact-SQL ifadeleri veya veritabanı uygulaması programlama arabirim (API) işlevleri. Sistem ayrıca doğru dosyayı tamamlamadan önce bir işlemi sona erdirmek hataları işlemek çalıştırabilmesi gerekir.

Varsayılan olarak, bağlantı sırasında hareketlerin yönetilen düzey.Bir bağlantıda bir işlem başlatıldığında tüm Transact-SQL Bu bağlantı bir ifade, işlem sona kadar hareket bir parçasıdır. Ancak, bu altında birden çok etkin bir sonuç (MARS) oturum ayarlamak bir Transact-SQL açık veya örtülü bir işlem toplu iş iş iş düzeyinde yönetilir toplu iş iş kapsamlı bir işlem haline gelir. toplu iş iş iş tamamlandığında kapsamlı toplu iş iş iş olmayan kaydedilmiş veya geri alındı, onu otomatik olarak döndürülüyor SQL Server.

Işlem başlatılıyor

API işlevleri kullanarak ve Transact-SQL ifadeleri, hareketleri örnek başlatabilirsiniz SQL Server Database Engine açık, autocommit, olarak veya örtülü hareketleri. Bir MARS oturum altında Transact-SQL açık ve kapalı hareketleri kapsamlı toplu iş iş hareketler haline gelir.

  • Açık hareketler
    Açıkça veren bir API işlev aracılığıyla veya bir işlem başlatmak Transact-SQL BEGIN TRANSACTION deyim.

  • Autocommit hareketleri
    Varsayılan modu Database Engine. Her bir kişi Transact-SQL deyim tamamlandığında amaç edinmiştir. Denetim işlemleri için herhangi bir ifade belirtmeniz gerekmez.

  • Kapalı hareketler
    örtük işlem modu yoluyla bir API işlev ayarlayın veya Transact-SQL küme implicit_transactions ÜZERİNDE deyim. Sonraki deyim, otomatik olarak yeni bir hareket başlatır.Bu işlem tamamlandığında, sonraki Transact-SQL deyim, yeni bir hareket başlatır.

  • Kapsamlı toplu iş iş işlemleri
    Birden çok etkin bir sonuç kümesi (MARS), yalnızca uygulanabilir bir Transact-SQL altında bir MARS oturum başlatan açýk veya kapalý hareket toplu iş iş kapsamlı bir işlem haline gelir. Olmayan kaydedilmiş olan veya bir toplu iş tamamlandığında geri alınıyor toplu kapsamlı bir hareketi otomatik olarak döndürülüyor SQL Server.

Işlem modları bağlantı düzeyinde yönetilir.Tek bir bağlantıda bir işlem modunu değiştirir, bağlı olan işlem modları herhangi bir bağlantının üzerinde bir etkisi yoktur.

Işlemleri sonlandırma

Hareketler, yürütme veya ROLLBACK deyim ile veya bir API işlev sonlandırabilirsiniz.

  • yürütme
    Işlem başarılı olursa, dosyayı yürütme.Tüm hareket değişiklikleri veritabanına kalıcı bir parçası yapılan BIR yürütme deyim güvence altına alır.Bir yürütme da kilitler, işlem tarafından kullanılan gibi kaynakları serbest bırakır.

  • GERİ ALMA
    Bir işlemde bir hata ortaya çıkarsa veya kullanıcı hareketi iptal karar verirse, daha sonra hareketi geri alın.Verileri, işlemin başlangıcında durumuna döndürerek harekette yapılan tüm değişiklikler dışında BIR ROLLBACK deyim yedekler.Bir ROLLBACK de işlem tarafından tutulan kaynakları serbest bırakır.

Not

Varken bekleyen istekleri yürütme için birden çok etkin bir sonuç kümesi'ni (MARS) desteklemek için etkin bağlantılar altında bir API işlev başlatılan bir belirtik işlem bağımlı olamaz.Bekleyen işlemler çalışan varken bu tür bir hareket yürütme girişimi herhangi bir hata neden olur.

Işlem sınırları belirleme

Ne zaman belirle Database Engine hareketleri başlangıç ve bitiş ile Transact-SQL ifadeler veya API işlevleri ve yöntemleri.

  • Transact-SQL ifadeleri
    Hareketleri belirginleştiren için BEGIN TRANSACTION yürütme TRANSACTION, WORK yürütme, ROLLBACK TRANSACTION, ROLLBACK WORK ve küme IMPLICIT_TRANSACTIONS ifadeleri kullanın.Bunlar özellikle ve DB Kitaplığı uygulamaları'de kullanılan Transact-SQL komut istemi dosyaları kullanılarak çalıştırılan komut istemi dosyaları gibi Osql komut istemi satırı yardımcı programı.

  • API işlevleri ve yöntemleri
    ODBC, OLE DB, ADO ve .NET Framework SQLClient ad gibi veritabanı Apı işlevleri veya hareketleri belirginleştiren için kullanılan yöntemler içerir.Bunlar, hareketleri denetlemek için kullanılan birincil mekanizmaları bir Database Engine Uygulama.

Her hareket yalnızca bu yöntemlerden biri tarafından yönetiliyor olması gerekir.Aynı hareket her iki yöntemi kullanarak, tanımsız sonuçlara yol açabilir.Örneğin, değil ODBC API işlevlerini kullanan bir işlemde Başlat ve sonra Transact-SQL yürütme deyim hareketi tamamlamak için kullanın.Bu olmayan bildirim SQL Server Hareket tamamlanmış ODBC sürücüsü. Bu durumda, ODBC kullanın. SQLEndTran işlev hareket sona erdirmek için.

Hareket işleme sırasında hata

Hata, başarılı bir hareketin tamamlanmasını engelliyorsa SQL Server otomatik olarak geri hareket alır ve bir işlem tarafından tutulan tüm kaynakları serbest bırakır. Varsa istemcinin ağ bağlantısı örneği Database Engine bağlantı toplu geri ağ sonu örnek bildirdiğinde bozuk, tüm bekleyen işlemler aranır. Istemci uygulaması başarısız olur veya istemci bilgisayar kapandığında ya da yeniden, bu da bağlantı ve örneğini keser Database Engine Ağ sonu bildirdiğinde, bekleyen herhangi bir bağlantıyı geri alır. Istemci devre dışı uygulama günlükleri, tüm bekleyen işlemler geri alınır.

Bir çalışma-saat bir toplu iş, varsayılan davranış olarak (örneğin, bir kısıtlama ihlali) deyimi hata oluşuyor Database Engine yalnızca hata oluşturan deyim geri almak almak almaktır. küme XACT_ABORT deyimini kullanarak, bu davranışı değiştirebilirsiniz.küme XACT_ABORT ON yürütüldükten sonra herhangi bir çalışma zamanı deyim hata, geçerli hareket için otomatik bir geri alma neden olur.Sözdizimi hatası gibi derleme hataları ile küme XACT_ABORT etkilenmez.Daha fazla bilgi için bkz:küme XACT_ABORT (Transact-SQL).

Hatalar oluştuğunda, düzeltmeleri (yürütme veya ROLLBACK) uygulama kodu bulunmalıdır.Hareketleri dahil, hataları işlemek için etkili bir araç Transact-SQL TRY…CATCH yapýsý. Hareketleri dahil örneklerle birlikte daha fazla bilgi için bkz: Kullanarak TRY... CATCH Transact-SQL'DE ve ... CATCH (Transact-SQL) TRY.