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.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Microsoft Fabric'te SQL veritabanı
Transact-SQL COMMIT TRANSACTION ifadesinin davranışını kontrol eder. Bu ayar için varsayılan değer KAPALIDIR. Bu, bir işlem yaptığınızda sunucunun imleci kapatmayacağı anlamına gelir.
Transact-SQL söz dizimi kuralları
Sözdizimi
SET CURSOR_CLOSE_ON_COMMIT { ON | OFF }
Açıklamalar
SET CURSOR_CLOSE_ON_COMMIT AÇIKSA, bu ayar ISO ile uyumlu olarak commit veya rollback üzerindeki açık imleci kapatır. SET CURSOR_CLOSE_ON_COMMIT KAPALI olduğunda, işlem yapıldığında imleç kapanmaz.
Uyarı
ON olarak AYARLANT CURSOR_CLOSE_ON_COMMIT geri alma işlemi bir SAVE TRANSACTION ifadesinden bir savepoint_name'ye geri alındığında geri dönüş sırasında açık imleci kapatmaz.
SET CURSOR_CLOSE_ON_COMMIT KAPALI olduğunda, bir ROLLBACK ifadesi yalnızca tam doldurulmamış açık asenkron imleci kapatır. Değişiklikler yapıldıktan sonra açılan STATİK veya DUYARSIZ İLemler, değişiklikler geri alındığında verinin durumunu yansıtmaz.
SET CURSOR_CLOSE_ON_COMMIT, CURSOR_CLOSE_ON_COMMIT veritabanı seçeneğiyle aynı davranışı kontrol eder. Eğer CURSOR_CLOSE_ON_COMMIT AÇIK veya KAPALI olarak ayarlanmışsa, bu ayar bağlantıda kullanılır. SET CURSOR_CLOSE_ON_COMMIT belirtilmemişse, sys.databases katalog görünümündeki is_cursor_close_on_commit_on sütunundaki değer uygulanır.
SQL Server Native Client OLE DB Provider for SQL Server ve SQL Server Native Client ODBC sürücüsü, bağlandıklarında CURSOR_CLOSE_ON_COMMIT OFF olarak ayarlanır. DB-Library otomatik olarak CURSOR_CLOSE_ON_COMMIT değerini belirlemez.
SET ANSI_DEFAULTS AÇIKKEN SET CURSOR_CLOSE_ON_COMMIT etkinleştirilir.
SET CURSOR_CLOSE_ON_COMMIT ayarı işleme veya çalışma zamanında ayarlanır, ayrıştırma zamanında değil.
Bu ayarın mevcut ayarını görmek için aşağıdaki sorguyu çalıştırın.
DECLARE @CURSOR_CLOSE VARCHAR(3) = 'OFF';
IF ( (4 & @@OPTIONS) = 4 ) SET @CURSOR_CLOSE = 'ON';
SELECT @CURSOR_CLOSE AS CURSOR_CLOSE_ON_COMMIT;
Permissions
"" genel "" rolüne üyelik gerektirir.
Örnekler
Aşağıdaki örnek, bir işlemde bir imleci tanımlar ve işlem tamamlandıktan sonra onu kullanmaya çalışır.
-- SET CURSOR_CLOSE_ON_COMMIT
-------------------------------------------------------------------------------
SET NOCOUNT ON;
CREATE TABLE t1 (a INT);
GO
INSERT INTO t1
VALUES (1), (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.
VERİ TABANINI DEĞİŞTİR (Transact-SQL)
BAŞLAYIN (Transact-SQL)
CLOSE (Transact-SQL)
İŞLEME İŞLEMI (Transact-SQL)
GERI ALMA İŞLEMI (Transact-SQL)
SET Deyimleri (Transact-SQL)
SET ANSI_DEFAULTS (Transact-SQL)