MIN_ACTIVE_ROWVERSION (Transact-SQL)
傳回目前資料庫中,使用中的最低 rowversion 值。 如果 rowversion 值用在尚未認可的交易中,則該值為使用中。 如需詳細資訊,請參閱 rowversion (Transact-SQL)。
注意事項 |
---|
rowversion 資料類型也稱為 timestamp。 |
適用於:SQL Server (SQL Server 2008 至目前版本)、Azure SQL Database。 |
語法
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