Share via


MIN_ACTIVE_ROWVERSION (Transact-SQL)

 

傳回目前資料庫中,使用中的最低 rowversion 值。 如果 rowversion 值用在尚未認可的交易中,則該值為使用中。 如需詳細資訊,請參閱 rowversion (Transact-SQL)

System_CAPS_note注意事項

rowversion 資料類型也稱為 timestamp

適用於:SQL Server (SQL Server 2008 至目前版本)、Azure SQL Database。

主題連結圖示Transact-SQL 語法慣例

語法

MIN_ACTIVE_ROWVERSION

傳回類型

傳回 binary(8) 值。

備註

MIN_ACTIVE_ROWVERSION 是一個不具決定性的函數,它會傳回目前資料庫中最低的使用中 rowversion 值。 在包含 rowversion 類型之資料行的資料表上執行插入或更新時,通常會產生新的 rowversion 值。 如果在資料庫中沒有使用中的值,MIN_ACTIVE_ROWVERSION 會傳回與 @@DBTS + 1 相同的值。

例如,MIN_ACTIVE_ROWVERSION 在類似以下的狀況中會很實用:使用 rowversion 值將變更集合分組在一起的資料同步處理。 如果應用程式使用 @@DBTS 而非 MIN_ACTIVE_ROWVERSION,有可能會遺漏在同步處理發生時的使用中變更。

MIN_ACTIVE_ROWVERSION 函數不會受到交易隔離等級中的變更影響。

範例

下列範例會使用 rowversion 和 MIN_ACTIVE_ROWVERSION 來傳回 @@DBTS。 請注意,當資料庫中沒有任何使用中交易時,這些值就會不同。

-- 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

請參閱

@@DBTS (Transact-SQL)
rowversion (Transact-SQL)