MIN_ACTIVE_ROWVERSION (Transact-SQL)

Добавления: 15 сентября 2007 г.

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

Bb839514.note(ru-ru,SQL.90).gifПримечание.
Тип данных 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, можно упустить изменения, которые становятся активными при синхронизации.

Примеры

Следующий пример возвращает значения rowversion, используя MIN_ACTIVE_ROWVERSION and @@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)
timestamp (Transact-SQL)

Справка и поддержка

Получение помощи по SQL Server 2005