MIN_ACTIVE_ROWVERSION (T-SQL)
Berlaku untuk: SQL ServerAzure SQL Database Azure SQL Managed Instance
Mengembalikan nilai rowversion aktif terendah dalam database saat ini. Nilai rowversion aktif jika digunakan dalam transaksi yang belum diterapkan. Untuk informasi selengkapnya, lihat rowversion (Transact-SQL).
Catatan
Jenis data rowversion juga dikenal sebagai tanda waktu.
Sintaks
MIN_ACTIVE_ROWVERSION ( )
Jenis Kembalian
Mengembalikan nilai biner(8).
Keterangan
MIN_ACTIVE_ROWVERSION adalah fungsi non-deterministik yang mengembalikan nilai rowversion aktif terendah dalam database saat ini. Nilai rowversion baru biasanya dihasilkan saat penyisipan atau pembaruan dilakukan pada tabel yang berisi kolom jenis rowversion. Jika tidak ada nilai aktif dalam database, MIN_ACTIVE_ROWVERSION mengembalikan nilai yang sama dengan @@DBTS + 1.
MIN_ACTIVE_ROWVERSION berguna untuk skenario seperti sinkronisasi data yang menggunakan nilai rowversion untuk mengelompokkan kumpulan perubahan bersama-sama. Jika aplikasi menggunakan @@DBTS daripada MIN_ACTIVE_ROWVERSION, dimungkinkan untuk melewatkan perubahan yang aktif saat sinkronisasi terjadi.
Fungsi MIN_ACTIVE_ROWVERSION tidak dipengaruhi oleh perubahan tingkat isolasi transaksi.
Contoh
Contoh berikut mengembalikan nilai rowversion dengan menggunakan MIN_ACTIVE_ROWVERSION
dan @@DBTS
. Perhatikan bahwa nilai berbeda ketika tidak ada transaksi aktif dalam database.
-- Create a table that has a ROWVERSION column in it.
CREATE TABLE RowVersionTestTable (rv ROWVERSION)
GO
-- Print the current values for the database.
PRINT ''
PRINT 'DBTS'
PRINT @@DBTS
PRINT 'MIN_ACTIVE_ROWVERSION'
PRINT MIN_ACTIVE_ROWVERSION()
GO
---------------- Results ----------------
--DBTS
--0x00000000000007E2
--MIN_ACTIVE_ROWVERSION
--0x00000000000007E3
-- Insert a row.
INSERT INTO RowVersionTestTable VALUES (DEFAULT)
SELECT * FROM RowVersionTestTable
GO
---------------- Results ----------------
--rv
--0x00000000000007E3
-- Print the current values for the database.
PRINT ''
PRINT 'DBTS'
PRINT @@DBTS
PRINT 'MIN_ACTIVE_ROWVERSION'
PRINT MIN_ACTIVE_ROWVERSION()
GO
---------------- Results ----------------
--DBTS
--0x00000000000007E3
--MIN_ACTIVE_ROWVERSION
--0x00000000000007E4
-- Insert a new row inside a transaction but do not commit.
BEGIN TRAN
INSERT INTO RowVersionTestTable VALUES (DEFAULT)
SELECT * FROM RowVersionTestTable
GO
---------------- Results ----------------
--rv
--0x00000000000007E3
--0x00000000000007E4
-- Print the current values for the database.
PRINT ''
PRINT 'DBTS'
PRINT @@DBTS
PRINT 'MIN_ACTIVE_ROWVERSION'
PRINT MIN_ACTIVE_ROWVERSION()
GO
---------------- Results ----------------
--DBTS
--0x00000000000007E4
--MIN_ACTIVE_ROWVERSION
--0x00000000000007E4
-- Commit the transaction.
COMMIT
GO
-- Print the current values for the database.
PRINT ''
PRINT 'DBTS'
PRINT @@DBTS
PRINT 'MIN_ACTIVE_ROWVERSION'
PRINT MIN_ACTIVE_ROWVERSION()
GO
---------------- Results ----------------
--DBTS
--0x00000000000007E4
--MIN_ACTIVE_ROWVERSION
--0x00000000000007E5