MIN_ACTIVE_ROWVERSION (Transact-SQL)

Nuevo: 15 de septiembre de 2007

Devuelve el valor activo más bajo de rowversion en la base de datos actual. Un valor de rowversion está activo si se utiliza en una transacción que aún no se ha confirmado. Para obtener más información, vea timestamp (Transact-SQL).

[!NOTA] Al tipo de datos rowversion también se le conoce como timestamp.

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

Sintaxis

MIN_ACTIVE_ROWVERSION

Tipos de valor devueltos

Devuelve un valor binary(8).

Notas

MIN_ACTIVE_ROWVERSION es una función no determinista que devuelve el valor activo más bajo de rowversion en la base de datos actual. Normalmente se genera un nuevo valor de rowversion cuando se realiza una inserción o una actualización en una tabla que contiene una columna de tipo rowversion. Si no hay ningún valor activo en la base de datos, MIN_ACTIVE_ROWVERSION devuelve el mismo valor que @@DBTS + 1.

MIN_ACTIVE_ROWVERSION es útil en escenarios de sincronización de datos que usan los valores de rowversion para agrupar conjuntos de cambios. Si una aplicación utiliza @@DBTS en lugar de MIN_ACTIVE_ROWVERSION, es posible que pierda cambios que están activos cuando se produce la sincronización.

Ejemplos

En el ejemplo siguiente se devuelven los valores de rowversion mediante MIN_ACTIVE_ROWVERSION y @@DBTS. Observe que los valores difieren cuando no hay ninguna transacción activa en la base de datos.

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

Vea también

Referencia

@@DBTS (Transact-SQL)
timestamp (Transact-SQL)

Ayuda e información

Obtener ayuda sobre SQL Server 2005