Share via


MIN_ACTIVE_ROWVERSION (Transact-SQL)

Retorna o valor rowversion ativo mais baixo no banco de dados atual. Um valor rowversion será ativo se for usado em uma transação ainda não confirmada. Para obter mais informações, consulte rowversion (Transact-SQL).

ObservaçãoObservação

O tipo de dados rowversion também é conhecido como timestamp.

Ícone de vínculo de tópicoConvenções de sintaxe Transact-SQL

Sintaxe

MIN_ACTIVE_ROWVERSION

Tipos de retorno

Retorna um valor binary(8).

Comentários

MIN_ACTIVE_ROWVERSION é uma função não determinística que retorna o valor rowversion ativo mais baixo no banco de dados atual. Um novo valor rowversion normalmente é gerado quando uma inserção ou atualização é executada em uma tabela que contém uma coluna do tipo rowversion. Se não houver nenhum valor ativo no banco de dados, MIN_ACTIVE_ROWVERSION retornará o mesmo valor como @@DBTS + 1.

MIN_ACTIVE_ROWVERSION é útil para cenários como sincronização de dados que usam o valor rowversion para agrupar conjuntos de alterações. Se um aplicativo usar @@DBTS em vez de MIN_ACTIVE_ROWVERSION, as alterações que estiverem ativas quando a sincronização ocorrer poderão ser perdidas.

Exemplos

O exemplo a seguir retorna o valor rowversion usando MIN_ACTIVE_ROWVERSION e @@DBTS. Observe que os valores diferem quando não há nenhuma transação ativa no banco de dados.

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

Consulte também

Referência