Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
İşlem, tamamen işlenen veya tamamen geri alınan bir veya daha fazla veritabanı deyimi grubudur. Her işlem atomik, tutarlı, yalıtılmış ve dayanıklıdır (ACID). İşlem başarılı olursa içindeki tüm deyimler işlenir. İşlem başarısız olursa, gruptaki deyimlerden en az biri başarısız olursa, grubun tamamı geri alınır.
Not
SET AUTOCOMMIT Komutu Microsoft Fabric Veri Ambarı'nda desteklenmez. Microsoft Fabric Veri Ambarı'ndaki işlemler, yalıtım, eşzamanlılık ve tutarlılık hakkında daha fazla bilgi için bkz. Doku Veri Ambarı'ndaki işlemler.
İşlemlerin başlangıcı ve sonu ayarına AUTOCOMMIT ve BEGIN TRANSACTION, COMMITve ROLLBACK deyimlerine bağlıdır.
Aşağıdaki işlem türleri desteklenir:
Açık işlemler deyimiyle
BEGIN TRANSACTIONbaşlar ve veyaROLLBACKdeyimiyleCOMMITbiter.Otomatik işleme işlemleri bir oturum içinde otomatik olarak başlatılır ve deyimiyle
BEGIN TRANSACTIONbaşlamaz.-
AUTOCOMMITayar olduğundaON, her deyim bir işlemde çalışır ve açıkCOMMITveyaROLLBACKgerekli değildir. -
AUTOCOMMITAyar olduğundaOFF, işlemin sonucunu belirlemek için birCOMMITveyaROLLBACKdeyimi gerekir. Otomatik komut işlemleri, bir veyaROLLBACKdeyiminin hemen ardından veya birCOMMITSET AUTOCOMMIT OFFdeyimden sonra başlar.
-
Transact-SQL söz dizimi kuralları
Sözdizimi
BEGIN TRANSACTION [;]
COMMIT [ TRAN | TRANSACTION | WORK ] [;]
ROLLBACK [ TRAN | TRANSACTION | WORK ] [;]
SET AUTOCOMMIT { ON | OFF } [;]
SET IMPLICIT_TRANSACTIONS { ON | OFF } [;]
Bağımsız değişken
İŞLEM BAŞLAT
Açık bir işlemin başlangıç noktasını işaretler.
COMMIT [ WORK ]
Açık veya otomatik komut işleminin sonunu işaretler. Bu deyim, işlemdeki değişikliklerin veritabanına kalıcı olarak işlenmesine neden olur. deyimi COMMIT , COMMIT TRANve COMMIT TRANSACTIONile aynıdırCOMMIT WORK.
ROLLBACK [ WORK ]
Bir işlemi hareketin başına geri alır. Veritabanına işlem için hiçbir değişiklik uygulanmaz. deyimi ROLLBACK , ROLLBACK TRANve ROLLBACK TRANSACTIONile aynıdırROLLBACK WORK.
AUTOCOMMIT { ON AYARıNı | KAPALI }
İşlemlerin nasıl başlatılıp bitebileceğini belirler.
Etkin bir işlemdeki AUTOCOMMIT ayarı değiştirirseniz, ayar geçerli işlemi etkiler ve işlem tamamlanana kadar geçerli olmaz.
ise AUTOCOMMITON, başka bir SET AUTOCOMMIT ON deyimi çalıştırmanın hiçbir etkisi yoktur. Benzer şekilde, ise AUTOCOMMITOFFbaşka bir SET AUTOCOMMIT OFF çalıştırmanın hiçbir etkisi yoktur.
ÜZERİNDE
Her deyim kendi işlemi altında çalışır ve açık COMMIT veya ROLLBACK deyim gerekmez. olduğunda AUTOCOMMITONaçık işlemlere izin verilir.
KAPALI
Azure Synapse Analytics, bir işlem henüz devam etmediğinde otomatik olarak işlem başlatır. Sonraki deyimler işlemin bir parçası olarak çalıştırılır ve işlemin sonucunu belirlemek için veya COMMITROLLBACK gereklidir. İşlem bu işlem modu altında işleme veya geri alma işlemi tamamlanır tamamlanmaz, mod olarak kalır OFF. Yeni bir işlem başlatılır. olduğunda AUTOCOMMITOFFaçık işlemlere izin verilmez.
SET IMPLICIT_TRANSACTIONS { ON | KAPALI }
Bu, ile SET AUTOCOMMITaynı modları değiştirir. olduğunda ON, SET IMPLICIT_TRANSACTIONS bağlantıyı örtük işlem moduna ayarlar. olduğunda OFF, otomatik komut moduna bağlantıyı döndürür. Daha fazla bilgi için bkz. set IMPLICIT_TRANSACTIONS (Transact-SQL)
İzinler
İşlemle ilgili deyimleri çalıştırmak için belirli bir izin gerekmez. deyimlerini işlem içinde çalıştırmak için izinler gereklidir.
Hata yönetimi
veya ROLLBACK çalıştırılırsa COMMIT ve etkin bir işlem yoksa bir hata oluşur.
BEGIN TRANSACTION bir işlem devam ederken çalıştırılırsa bir hata oluşur. Başarılı bir BEGIN TRANSACTIONBEGIN TRANSACTION deyimden sonra veya oturum altında SET AUTOCOMMIT OFFolduğunda bu durum oluşabilir.
Çalışma zamanı deyimi hatası dışında bir hata açık bir işlemin başarıyla tamamlanmasını engelliyorsa, veritabanı altyapısı işlemi otomatik olarak geri alır ve işlem tarafından tutulan tüm kaynakları boşaltır. Örneğin, istemcinin ağ bağlantısı kesilirse veya istemci uygulama oturumunu kapatırsa, ağ kesme örneğini bilgilendirdiğinde bağlantı için kaydedilmemiş işlemler geri alınır.
Bir toplu işlemde bir çalışma zamanı deyimi hatası oluşursa, Azure Synapse Analytics SQL Server'ın XACT_ABORT olarak ayarlanmasıyla ON tutarlı davranır ve işlemin tamamı geri alınır. Ayar hakkında XACT_ABORT daha fazla bilgi için bkz . SET XACT_ABORT (Transact-SQL).
Açıklamalar
Oturum belirli bir anda yalnızca bir işlem çalıştırabilir; kaydetme noktaları ve iç içe işlemler desteklenmez.
Yalnızca işlem tarafından başvuruda bulunan tüm verilerin mantıksal olarak doğru olduğu bir noktada yayınlamak COMMIT programcının sorumluluğundadır.
İşlem tamamlanmadan önce bir oturum sonlandırıldığında, işlem geri alınır.
İşlem modları oturum düzeyinde yönetilir. Örneğin, bir oturum açık bir işlem başlatırsa veya olarak ayarlanırsa AUTOCOMMITOFFIMPLICIT_TRANSACTIONSON, başka bir oturumun işlem modları üzerinde hiçbir etkisi olmaz.
Sınırlamalar
Veri değişiklikleri veritabanının kalıcı bir parçası haline getirildiğinden, bir COMMIT deyim verildikten sonra işlemi geri alamazsınız.
CREATE DATABASE ve DROP DATABASE (Transact-SQL) komutları açık bir işlem içinde kullanılamaz.
Azure Synapse Analytics'in işlem paylaşım mekanizması yoktur. Bu, belirli bir zamanda, sistemdeki herhangi bir işlem üzerinde yalnızca bir oturumun çalışabileceği anlamına gelir.
Kilitleme davranışı
Kilitleme işlemlerin bütünlüğünü sağlar ve birden çok kullanıcı aynı anda verilere erişirken veritabanlarının tutarlılığını korur. Kilitleme hem örtük hem de açık işlemler tarafından kullanılır. Her işlem, işlemin bağımlı olduğu tablolar veya veritabanları gibi kaynaklara farklı türlerde kilitler.
Tüm kilitler tablo düzeyinde veya daha yüksektir. Kilitler, diğer işlemlerin kaynakları kilit isteğinde bulunan işlem için sorunlara neden olacak şekilde değiştirmesini engeller. Her işlem artık kilitli kaynaklara bağımlılığı olmadığında kilitlerini serbest; açık işlemler, işlem işlendiğinde veya geri alındığında tamamlanana kadar kilitleri korur.
Örnekler
A. Açık bir işlem kullanma
BEGIN TRANSACTION;
DELETE FROM HumanResources.JobCandidate
WHERE JobCandidateID = 13;
COMMIT;
B. Açık bir işlemi geri alma
Aşağıdaki örnek, bir işlemi geri döndürmenin etkisini gösterir. Bu örnekte deyimi ROLLBACK deyimini INSERT geri alır, ancak oluşturulan tablo yine de var olur.
CREATE TABLE ValueTable (id INT);
BEGIN TRANSACTION;
INSERT INTO ValueTable VALUES(1);
INSERT INTO ValueTable VALUES(2);
ROLLBACK;
C. AUTOCOMMIT'i ayarlama
Aşağıdaki örnek ayarı olarak AUTOCOMMITONayarlar.
SET AUTOCOMMIT ON;
Aşağıdaki örnek ayarı olarak AUTOCOMMITOFFayarlar.
SET AUTOCOMMIT OFF;
D. Örtük çok deyimli işlem kullanma
SET AUTOCOMMIT OFF;
CREATE TABLE ValueTable (id INT);
INSERT INTO ValueTable VALUES(1);
INSERT INTO ValueTable VALUES(2);
COMMIT;