Поделиться через


MIN_ACTIVE_ROWVERSION (Transact-SQL)

Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure

Возвращает наименьшее активное значение rowversion в текущей базе данных. Значение rowversion является активным, если оно используется в незафиксированной транзакции. Дополнительные сведения см. в статье rowversion (Transact-SQL).

Примечание.

Тип данных rowversion также известен как timestamp.

Соглашения о синтаксисе 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)