是否可以查询SQL Server表中的时间戳(rowversion)列?如果是这样,怎么样?时间戳列 - 是否可以查询?
我想要做这样的事情:
Select * From MyTable Where MyTimestampColumn = "???"
但我不知道要放什么东西在“???”
谢谢 - 兰迪
是否可以查询SQL Server表中的时间戳(rowversion)列?如果是这样,怎么样?时间戳列 - 是否可以查询?
我想要做这样的事情:
Select * From MyTable Where MyTimestampColumn = "???"
但我不知道要放什么东西在“???”
谢谢 - 兰迪
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
的代名词,以帮助未来的迁移。
是的。这实际上是binary(8)
。
为什么要使用它呢?它只是用来检测UPDATE上的一行的其他更改。否则,您必须测试行中的所有列以进行更改。 MS访问尤其是依赖于它的并发
一个SQL Server时间戳列是行版本,并且不涉及到时间(http://msdn.microsoft.com/en-us/library/ms182776.aspx)
但是,它常常并发查询(显式或隐式)检查多用户应用程序的代码。
你能解释一下你试图解决什么问题,而不是你如何解决它?你想写什么样的查询?它应该做什么?你的数据是什么?你期望输出什么? – 2010-05-26 16:52:03
@Mark Byers - 这有点复杂,但可以说我只是想为Timestamp列搜索特定的值。 – 2010-05-26 16:55:49