Aracılığıyla paylaş


set IMPLICIT_TRANSACTIONS (Transact-sql)

Kesin hareketin modunu bağlantı için ayarlar.

Konu bağlantısı simgesi Transact-SQL Sözdizim Kuralları

Sözdizimi

SET IMPLICIT_TRANSACTIONS { ON | OFF }

Açıklamalar

on set IMPLICIT_TRANSACTIONS bağlantı içine kesin hareketin modunu ayarlar. Ne zaman, o Bağlantı autocommit hareket moduna döner.

Kesin hareketin modunda bir bağlantıdır ve bağlantı bir harekette bulunmayan aşağıdaki ifadelerden birini yürütülürken bir hareket başlatır:

ALTER TABLE

GETİR

İPTAL ETME

BAŞLANGIÇ İŞLEM

GRANT

SEÇİN

OLUŞTURMA

EKLE

TRUNCATE TABLE

DELETE

AÇIK

GÜNCELLEŞTİRME

BIRAK

Bağlantı zaten açık bir hareketi olan ifadeler yeni bir hareket başlatmayın.

Bu ayarı on olmanın sonucu olarak otomatik olarak açılan işlemler açıkça taahhüt veya hareket sonunda kullanıcı tarafından geri gerekir. Aksi takdirde, geri kullanıcı bağlantıyı kestiğinde hareket ve içerdiği tüm veri değişiklikleri alınır. Yukarıdaki ifadelerden birini yürütülürken, bir hareket kararlıdır sonra yeni bir hareket başlatır.

Kesin hareketin modunu, bağlantı Bağlantı autocommit modu döndüren bir set IMPLICIT_TRANSACTIONS off deyimi yürütür kadar etkin kalır. Autocommit modunda başarıyla tamamlarsanız tüm tek tek deyimleri kararlıyız.

SQL ServerYerel istemci ole db sağlayıcısı için SQL Serverve SQL Serveryerel istemci odbc sürücüsü otomatik olarak set IMPLICIT_TRANSACTIONS off when connecting. off set IMPLICIT_TRANSACTIONS varsayılanlarına bağlantıları ile SQLClientyönetilen sağlayıcı için http bitiş noktaları alınan soap istekleri ve.

set ANSI_DEFAULTS SET on olduğunda, set IMPLICIT_TRANSACTIONS açık'tır.

set IMPLICIT_TRANSACTIONS ayarı ayarlanır yürütme veya zaman değil ayrıştırma saati ve çalıştırın.

Örnekler

Aşağıdaki örnek ile başlayan açık ve örtülü hareketleri gösterir IMPLICIT_TRANSACTIONSset ON. O uses @@TRANCOUNTaçık ve kapatılan hareketleri göstermek için işlevi.

USE AdventureWorks2012;
GO
SET NOCOUNT ON;
GO
SET IMPLICIT_TRANSACTIONS OFF;
GO
PRINT N'Tran count at start = '
    + CAST(@@TRANCOUNT AS NVARCHAR(10));
GO
IF OBJECT_ID(N'dbo.t1',N'U') IS NOT NULL
    DROP TABLE dbo.t1;
GO
CREATE table dbo.t1 (a int);
GO
INSERT INTO dbo.t1 VALUES (1);
GO
PRINT N'Use explicit transaction.';
BEGIN TRANSACTION;
GO
INSERT INTO dbo.t1 VALUES (2);
GO
PRINT N'Tran count in explicit transaction = '
    + CAST(@@TRANCOUNT AS NVARCHAR(10));
COMMIT TRANSACTION;
GO
PRINT N'Tran count after explicit transaction = '
    + CAST(@@TRANCOUNT AS NVARCHAR(10));
GO

PRINT N'Setting IMPLICIT_TRANSACTIONS ON.';
GO
SET IMPLICIT_TRANSACTIONS ON;
GO

PRINT N'Use implicit transactions.';
GO
-- No BEGIN TRAN needed here.
INSERT INTO dbo.t1 VALUES (4);
GO
PRINT N'Tran count in implicit transaction = '
    + CAST(@@TRANCOUNT AS NVARCHAR(10));
COMMIT TRANSACTION;
PRINT N'Tran count after implicit transaction = '
    + CAST(@@TRANCOUNT AS NVARCHAR(10));
GO

PRINT N'Nest an explicit transaction with IMPLICIT_TRANSACTIONS ON.';
GO
PRINT N'Tran count before nested explicit transaction = '
    + CAST(@@TRANCOUNT AS NVARCHAR(10));

BEGIN TRANSACTION;
PRINT N'Tran count after nested BEGIN TRAN in implicit transaction = '
    + CAST(@@TRANCOUNT AS NVARCHAR(10));
INSERT INTO dbo.t1 VALUES (5);
COMMIT TRANSACTION;
PRINT N'Tran count after nested explicit transaction = '
    + CAST(@@TRANCOUNT AS NVARCHAR(10));
GO
-- Commit outstanding transaction.
COMMIT TRANSACTION;
GO

USE AdventureWorks2012;
GO
SET NOCOUNT ON;
GO
SET IMPLICIT_TRANSACTIONS OFF;
GO
PRINT N'Tran count at start = '
    + CAST(@@TRANCOUNT AS NVARCHAR(10));
GO
IF OBJECT_ID(N'dbo.t1',N'U') IS NOT NULL
    DROP TABLE dbo.t1;
GO
CREATE table dbo.t1 (a int);
GO
INSERT INTO dbo.t1 VALUES (1);
GO
PRINT N'Use explicit transaction.';
BEGIN TRANSACTION;
GO
INSERT INTO dbo.t1 VALUES (2);
GO
PRINT N'Tran count in explicit transaction = '
    + CAST(@@TRANCOUNT AS NVARCHAR(10));
COMMIT TRANSACTION;
GO
PRINT N'Tran count after explicit transaction = '
    + CAST(@@TRANCOUNT AS NVARCHAR(10));
GO

PRINT N'Setting IMPLICIT_TRANSACTIONS ON.';
GO
SET IMPLICIT_TRANSACTIONS ON;
GO

PRINT N'Use implicit transactions.';
GO
-- No BEGIN TRAN needed here.
INSERT INTO dbo.t1 VALUES (4);
GO
PRINT N'Tran count in implicit transaction = '
    + CAST(@@TRANCOUNT AS NVARCHAR(10));
COMMIT TRANSACTION;
PRINT N'Tran count after implicit transaction = '
    + CAST(@@TRANCOUNT AS NVARCHAR(10));
GO

PRINT N'Nest an explicit transaction with IMPLICIT_TRANSACTIONS ON.';
GO
PRINT N'Tran count before nested explicit transaction = '
    + CAST(@@TRANCOUNT AS NVARCHAR(10));

BEGIN TRANSACTION;
PRINT N'Tran count after nested BEGIN TRAN in implicit transaction = '
    + CAST(@@TRANCOUNT AS NVARCHAR(10));
INSERT INTO dbo.t1 VALUES (5);
COMMIT TRANSACTION;
PRINT N'Tran count after nested explicit transaction = '
    + CAST(@@TRANCOUNT AS NVARCHAR(10));
GO
-- Commit outstanding transaction.
COMMIT TRANSACTION;
GO

Ayrıca bkz.

Başvuru

ALTER TABLE (Transact-SQL)

BEGIN TRANSACTION (Transact-SQL)

Tablo (Transact-sql) oluştur

Sil (Transact-sql)

drop table (Transact-sql)

fetch (Transact-sql)

grant (Transact-sql)

Insert (Transact-sql)

OPEN (Transact-sql)

revoke (Transact-sql)

select (Transact-sql)

Deyimiyle (Transact-sql) bırak

set ANSI_DEFAULTS (Transact-sql)

@@ trancount (Transact-sql)

truncate table (Transact-sql)

Güncelleştirme (Transact-sql)