返回当前数据库中最低的活动 rowversion 值。如果 rowversion 值用在尚未提交的事务中,则它处于活动状态。有关更多信息,请参见 rowversion (Transact-SQL)。
备注
rowversion 数据类型也称为 timestamp。
适用范围:SQL Server(SQL Server 2008 到当前版本) Azure SQL Database。 |
语法
MIN_ACTIVE_ROWVERSION
返回类型
返回一个 binary(8) 值。
备注
MIN_ACTIVE_ROWVERSION 是一个非确定性函数,可返回当前数据库中最低的活动 rowversion 值。对包含 rowversion 类型的列的表执行插入或更新操作时,通常会生成一个新的 rowversion 值。如果数据库中没有活动的值,MIN_ACTIVE_ROWVERSION 将返回与 @@DBTS + 1 相��的值。
对于诸如使用 rowversion 值将多组更改组合在一起的数据同步等情况,MIN_ACTIVE_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
.gif)