时间戳列 - 可以查询吗?

时间:2010-05-26 16:40:58

标签: sql-server

是否可以查询SQL Server表中的Timestamp(rowversion)列?如果是这样,怎么样?

我想做这样的事情:

Select * From MyTable Where MyTimestampColumn = "???"

但我不知道该怎样投入“???”

谢谢 - 兰迪

3 个答案:

答案 0 :(得分:3)

timestamp数据类型等同于binary(8)。您可以查询它:

create table #t (somecolumn varchar(64), mytimestampcolumn timestamp)

insert into #t (somecolumn) select 'hello world'
insert into #t (somecolumn) select 'foo'
select * from #t where mytimestampcolumn = 0x0000000000000978 -- this value will vary 

drop table #t

请注意,Sql Server 2008中已弃用时间戳。在以前版本的SQL Server(2005,2000)中,rowversiontimestamp的同义词,有助于将来的迁移。

答案 1 :(得分:0)

是。它实际上是binary(8)

为什么要用它呢?它的唯一用途是在UPDATE上检测行的其他更改。否则,您必须测试行中的所有列以进行更改。 MS Access尤其依赖于并发性

答案 2 :(得分:0)

SQL Server时间戳列用于行版本控制,与时间(http://msdn.microsoft.com/en-us/library/ms182776.aspx)无关

但是,经常在多用户应用程序的并发检查代码中查询(显式或隐式)。