set CURSOR_CLOSE_ON_COMMIT (Transact-sql)

Davranışını denetleyen Transact-SQLTRANSACTION COMMIT deyimi. Bu ayarın varsayılan değeri Kapalı'dır. Yani bir hareketi tamamlamak zaman sunucu imleçler kapanmaz.

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

Sözdizimi

SET CURSOR_CLOSE_ON_COMMIT { ON | OFF }

Açıklamalar

set CURSOR_CLOSE_ON_COMMIT açık olduğunda, bu ayar tüm açık imleçleri on COMMIT veya rollback ISO uyumlu kapatır. set CURSOR_CLOSE_ON_COMMIT kapalı olduğunda, bir işlem tamamlanmış olduğunda imleç kapalı değil.

[!NOT]

Geri alma için bir savepoint_name bir save TRANSACTION deyimi uygulandığında on set CURSOR_CLOSE_ON_COMMIT açık imleçler üzerinde geri alma kapanmaz.

set CURSOR_CLOSE_ON_COMMIT kapalı olduğunda, rollback deyimi tam olarak doldurulur değil yalnızca açık zaman uyumsuz imleçleri kapatır. STATİK veya değişiklikler yapılmıştır sonra açıldı DUYARSIZ imleçler devlet veri değişiklikleri geri alınır ise yansıtacaktır artık.

set CURSOR_CLOSE_ON_COMMIT CURSOR_CLOSE_ON_COMMIT veritabanı seçeneği aynı davranışı denetler. CURSOR_CLOSE_ON_COMMIT on olarak ayarlanmışsa, ya da kapalı, bu ayarı bağlantı kullanılır. set CURSOR_CLOSE_ON_COMMIT belirtilmediği takdirde, değer is_cursor_close_on_commit_on sütununda sys.databases katalog görünüm uygulanır.

SQL ServerYerel istemci ole db sağlayıcısı için SQL Serverve SQL Serveryerel istemci odbc sürücüsü hem ayarlamak CURSOR_CLOSE_ON_COMMIT off bağlandıklarında. db-Library, CURSOR_CLOSE_ON_COMMIT değeri otomatik olarak ayarlamaz.

set CURSOR_CLOSE_ON_COMMIT, ANSI_DEFAULTS SET on olduğunda etkinleştirilir.

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

İzinler

Üyelik Genel rolü.

Örnekler

Aşağıdaki örnek, bir imleç bir hareket tanımlar ve hareket kararlıdır sonra kullanmaya çalışır.

-- SET CURSOR_CLOSE_ON_COMMIT
-------------------------------------------------------------------------------
SET NOCOUNT ON

CREATE TABLE t1 (
   a INT
)
GO 

INSERT INTO t1 
VALUES (1)
INSERT INTO t1 
VALUES (2)
GO

PRINT '-- SET CURSOR_CLOSE_ON_COMMIT ON'
GO
SET CURSOR_CLOSE_ON_COMMIT ON
GO
PRINT '-- BEGIN TRAN'
BEGIN TRAN
PRINT '-- Declare and open cursor'
DECLARE testcursor CURSOR FOR
SELECT a 
FROM t1
OPEN testcursor
PRINT '-- Commit tran'
COMMIT TRAN
PRINT '-- Try to use cursor'
FETCH NEXT FROM testcursor
CLOSE testcursor
DEALLOCATE testcursor
GO
PRINT '-- SET CURSOR_CLOSE_ON_COMMIT OFF'
GO
SET CURSOR_CLOSE_ON_COMMIT OFF
GO
PRINT '-- BEGIN TRAN'
BEGIN TRAN
PRINT '-- Declare and open cursor'
DECLARE testcursor CURSOR FOR
SELECT a 
FROM t1
OPEN testcursor
PRINT '-- Commit tran'
COMMIT TRAN
PRINT '-- Try to use cursor'
FETCH NEXT FROM testcursor
CLOSE testcursor
DEALLOCATE testcursor
GO
DROP TABLE t1;
GO

-- SET CURSOR_CLOSE_ON_COMMIT
-------------------------------------------------------------------------------
SET NOCOUNT ON

CREATE TABLE t1 (
   a INT
)
GO 

INSERT INTO t1 
VALUES (1)
INSERT INTO t1 
VALUES (2)
GO

PRINT '-- SET CURSOR_CLOSE_ON_COMMIT ON'
GO
SET CURSOR_CLOSE_ON_COMMIT ON
GO
PRINT '-- BEGIN TRAN'
BEGIN TRAN
PRINT '-- Declare and open cursor'
DECLARE testcursor CURSOR FOR
SELECT a 
FROM t1
OPEN testcursor
PRINT '-- Commit tran'
COMMIT TRAN
PRINT '-- Try to use cursor'
FETCH NEXT FROM testcursor
CLOSE testcursor
DEALLOCATE testcursor
GO
PRINT '-- SET CURSOR_CLOSE_ON_COMMIT OFF'
GO
SET CURSOR_CLOSE_ON_COMMIT OFF
GO
PRINT '-- BEGIN TRAN'
BEGIN TRAN
PRINT '-- Declare and open cursor'
DECLARE testcursor CURSOR FOR
SELECT a 
FROM t1
OPEN testcursor
PRINT '-- Commit tran'
COMMIT TRAN
PRINT '-- Try to use cursor'
FETCH NEXT FROM testcursor
CLOSE testcursor
DEALLOCATE testcursor
GO
DROP TABLE t1;
GO

Ayrıca bkz.

Başvuru

alter veritabanı (Transact-sql)

BEGIN TRANSACTION (Transact-SQL)

Kapat (Transact-sql)

TAMAMLAMA hareket (Transact-sql)

rollback TRANSACTION (Transact-sql)

Deyimiyle (Transact-sql) bırak

set ANSI_DEFAULTS (Transact-sql)