Autocommit hareketleri

otomatik yürütme modu Varsayılan hareket yönetimi modu, SQL Server Database Engine. Her Transact-SQL deyim kabul edildiğini veya geri tamamlandığında alınıyor. Bir deyim işleminin başarıyla tamamlandığı, edinmiştir; herhangi bir hata ile karşılaşırsa, döndürülüyor.Bir bağlantı örneğini Database Engine çalışır otomatik yürütme modu her bu varsayılan mod açýk veya kapalý hareketler tarafından kılınıp değil. otomatik yürütme modu de ADO, OLE DB, ODBC ve DB Kitaplığı için varsayılan moddur.

Bir bağlantı örneğini Database Engine çalışır otomatik yürütme modu bir BEGIN TRANSACTION deyim başlayıncaya kadar bir belirtik işlem, or örtük işlem moduna küme.Açık hareket tamamlandıktan veya geri veya örtülü işlem modunu devre dışı bırakıldığında, bağlantı döndürür otomatik yürütme modu.

IMPLICIT_TRANSACTIONS ON, küme bağlantıyı örtük işlem moduna ayarlar.Ne zaman OFF, bu bağlantıyı autocommit işlem moduna döndürür.

Derleme ve çalıştırma-CVE-2006-saat hataları

Autocommit modunda bazen olarak göründüğü bir örneğini, Database Engine Tüm toplu iş iş iş yalnızca bir SQL deyim yerine geri. Karşılaşılan hata, olmayan bir çalışma-derleme hatası olması durumunda bu gerçekleşir saat hata.Derleme hatası engeller Database Engine yürütme planı oluşturma arasında böylece toplu iş iş bir şey yürütülür. Tüm ifadeleri bir hata oluşturmadan önce geri alınmış, görüntülenir, ancak hata toplu iş iş bir şey yürütülmekte olan engelledi.Örneğin, bir derleme hatası nedeniyle hiçbir üçüncü toplu iş iş işlemindeki INSERT deyimleri yürütülür.Bu, geri, hiçbir zaman yürütüldüğünde ilk iki INSERT deyimleri toplu görünür.

USE AdventureWorks;
GO
CREATE TABLE TestBatch (Cola INT PRIMARY KEY, Colb CHAR(3));
GO
INSERT INTO TestBatch VALUES (1, 'aaa');
INSERT INTO TestBatch VALUES (2, 'bbb');
INSERT INTO TestBatch VALUSE (3, 'ccc');  -- Syntax error.
GO
SELECT * FROM TestBatch;  -- Returns no rows.
GO

Bu örnekte, üçüncü bir INSERT deyim çalışma-oluşturur saat birincil anahtar hata çoğaltın.Başarılı ve kaydedilmiş, ilk iki INSERT deyimleri; bu nedenle çalışma-sonra kalırlar saat hata.

USE AdventureWorks;
GO
CREATE TABLE TestBatch (Cola INT PRIMARY KEY, Colb CHAR(3));
GO
INSERT INTO TestBatch VALUES (1, 'aaa');
INSERT INTO TestBatch VALUES (2, 'bbb');
INSERT INTO TestBatch VALUES (1, 'ccc');  -- Duplicate key error.
GO
SELECT * FROM TestBatch;  -- Returns rows 1 and 2.
GO

The Database Engine uses deferred name resolution, in which object names are not resolved until execution saat. Bu örnekte, ilk iki INSERT deyimleri yürütülen kaydedilmiş ve ve bu iki satır kalır TestBatch Tablo sonra üçüncü bir INSERT deyim, varolmayan bir tabloya başvuran tarafından bir çalışma zamanı hatası üretir.

USE AdventureWorks;
GO
CREATE TABLE TestBatch (Cola INT PRIMARY KEY, Colb CHAR(3));
GO
INSERT INTO TestBatch VALUES (1, 'aaa');
INSERT INTO TestBatch VALUES (2, 'bbb');
INSERT INTO TestBch VALUES (3, 'ccc');  -- Table name error.
GO
SELECT * FROM TestBatch   -- Returns rows 1 and 2.
GO

See Also

Other Resources