MIN_ACTIVE_ROWVERSION (Transact-SQL)

適用於:SQL ServerAzure SQL DatabaseAzure SQL 受控執行個體

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

注意

rowversion 資料類型也稱為 timestamp

Transact-SQL 語法慣例

Syntax

MIN_ACTIVE_ROWVERSION ( ) 

注意

若要檢視 SQL Server 2014 (12.x) 和舊版的 Transact-SQL 語法,請參閱 舊版檔

傳回型別

傳回 binary(8) 值。

備註

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

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

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

範例

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

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