Aracılığıyla paylaş


küme CURSOR_CLOSE_ON_COMMIT (Transact-SQL)

Davranışını denetleyen Transact-SQL TRANSACTION yürütme deyim. Bu ayarın varsayılan değeri KAPALı'dır.Bu, bir hareket yürütme sırasında sunucu imleçler kapanmaz anlamına gelir.

Topic link iconTransact-SQL sözdizimi kuralları

SET CURSOR_CLOSE_ON_COMMIT { ON | OFF }

Remarks

küme CURSOR_CLOSE_ON_COMMIT AÇıK olduğunda, bu ayar, yürütme veya geri alma ISO ile uyumlu herhangi bir açık imleçleri kapatır.küme CURSOR_CLOSE_ON_COMMIT KAPALı olduğunda, bir işlem tamamlanmış olduğunda imleç kapalı değil.

Not

küme CURSOR_CLOSE_ON_COMMIT açık, geri alma, bir SAVE TRANSACTION deyim için bir savepoint_name uygulandığında, geri alma işlemi açık imleç kapanmaz.

küme CURSOR_CLOSE_ON_COMMIT KAPALı olduğunda, bir ROLLBACK deyim tam olarak giriş zaman uyumsuz yalnızca açık imleçleri kapatır.STATIK veya değişiklikler geri alınır, değişiklikler yapıldı sonra açılan büyük küçük harf DUYARLı imleçlerdir artık verileri durumunu yansıtır.

küme CURSOR_CLOSE_ON_COMMIT CURSOR_CLOSE_ON_COMMIT veritabanı seçeneği olarak aynı davranışı denetler.CURSOR_CLOSE_ON_COMMIT ise küme açık veya KAPALı, bu küme ting bağlantıda kullanılır.küme CURSOR_CLOSE_ON_COMMIT belirtilmediği takdirde, değer is_cursor_close_on_commit_on sütunsys.Databases Katalog görünümü için geçerlidir.

The SQL Server Native istemci OLE DB sağlayıcı for SQL Server and the SQL Server Native istemci ODBC driver both küme CURSOR_CLOSE_ON_COMMIT to OFF when they connect. DB Kitaplığı'nı otomatik olarak yapar küme CURSOR_CLOSE_ON_COMMIT değeri.

küme ANSI_DEFAULTS AÇıK olduğunda, küme CURSOR_CLOSE_ON_COMMIT etkinleştirilir.

küme CURSOR_CLOSE_ON_COMMIT ayarını ayarlayın yürütmek veya saat ve çözümleme saat değil.

İzinler

Üyelik gerektirir Ortak roldür.

Örnekler

Aşağıdaki örnek, bir işlemde bir imleç tanımlar ve hareket tamamlanmış 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