是否可以查询SQL Server表中的Timestamp(rowversion)列?如果是这样,怎么样?
我想做这样的事情:
Select * From MyTable Where MyTimestampColumn = "???"
但我不知道该怎样投入“???”
谢谢 - 兰迪
答案 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)中,rowversion
是timestamp
的同义词,有助于将来的迁移。
答案 1 :(得分:0)
是。它实际上是binary(8)
。
为什么要用它呢?它的唯一用途是在UPDATE上检测行的其他更改。否则,您必须测试行中的所有列以进行更改。 MS Access尤其依赖于并发性
答案 2 :(得分:0)
SQL Server时间戳列用于行版本控制,与时间(http://msdn.microsoft.com/en-us/library/ms182776.aspx)无关
但是,经常在多用户应用程序的并发检查代码中查询(显式或隐式)。