SQL Server TimeStamp数据类型

时间:2016-05-26 16:29:46

标签: sql-server

我想知道SQL Server中TimeStamp数据类型的用途是什么。

因为它是二进制的,所以它不是人类可读的,我无法转换为datetime或任何其他类型。因为我们不使用任何类型的复制,所以对我来说没有任何意义。

我问的原因是我继承了一个数据库,其中大多数表都有一个TimeStamp列,我无法做到

INSERT INTO SELECT *

SELECT * INTO

好的,我从不在程序或任何生产场景中执行此操作,但我在开发上做了很多工作来创建表的克隆或将较小的数据集复制到临时表中。

放弃这些列是否安全?它们不会在系统中的任何位置查询。

全部谢谢!

1 个答案:

答案 0 :(得分:3)

这些通常用于冲突检测。

无论何时在数据库中插入或更新行,都会在行的时间戳字段中放置一个新的唯一时间戳值。

这意味着您可以检测到以下情况:

  1. 您从数据库中检索一行或多行
  2. 您将对这些行的更改暂存在内存中
  3. 其他一些进程会更新数据库中的一行或多行
  4. 您想要更新数据库,但是现在需要处理冲突,如果您重新查询其他进程发生更改的行等等。
  5. 使用时间戳可以检测到点4。如果您在第1点查询的任何行的时间戳已更改,则行不再是您在第1点中获得的行。