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
ON'da, SET CURSOR_CLOSE_ON_COMMIT bu ayar ISO ile uyumlu olarak commit veya rollback durumunda açık imleci kapatır. KAPALı olduğunda SET CURSOR_CLOSE_ON_COMMIT , işlem yapıldığında imleç kapanmaz.
Uyarı
SET CURSOR_CLOSE_ON_COMMIT to ON, geri dönüş işlemi bir SAVE TRANSACTION ifadesinden bir savepoint_name uygulandığında rollback sırasında açık imlecleri kapatmaz.
KAPALı olduğunda SET CURSOR_CLOSE_ON_COMMIT , 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 SET CURSOR_CLOSE_ON_COMMIT veritabanı CURSOR_CLOSE_ON_COMMIT 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. BelirtilmediyseSET CURSOR_CLOSE_ON_COMMIT, sys.databases katalog görünümündeki is_cursor_close_on_commit_on sütunundaki değer geçerlidir.
SQL Server Native Client OLE DB Provider for SQL Server ve SQL Server Native Client ODBC sürücüsüCURSOR_CLOSE_ON_COMMIT, bağlandıklarında OFF olarak ayarlanır. DB-Library otomatik olarak değeri CURSOR_CLOSE_ON_COMMIT belirlemez.
ON olduğunda SETetkindirSET ANSI_DEFAULTSSET.SET CURSOR_CLOSE_ON_COMMIT
Ayarları SET CURSOR_CLOSE_ON_COMMIT işleme veya çalıştırma 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.
ALTER DATABASE (Transact-SQL)
BAŞLAYIN (Transact-SQL)
CLOSE (Transact-SQL)
İŞLEME İŞLEMI (Transact-SQL)
GERI ALMA İŞLEMI (Transact-SQL)
SET İfadeler (Transact-SQL)
SET ANSI_DEFAULTS (Transact-SQL)