SQL Server 2K - 为timestamp列插入显式值?

时间:2010-07-20 15:30:11

标签: sql tsql sql-server-2000

我正在努力开展一个项目,我需要将数据(通过一些小的转换)从一个数据库传输到另一个数据库。当我点击我的第一个时间戳列时,一切都很顺利......

似乎SQL Server不希望我对这种类型的列使用显式值,而是希望生成自己的列。

如果有办法,使用T-SQL,我可以将这些数据从一个表传送到另一个表吗?

3 个答案:

答案 0 :(得分:4)

注意:不推荐使用名称时间戳,新的(更准确的)名称是rowversion。

两个答案:

否:类型为rowversion的SQL Server列始终由数据库服务器生成和设置。

是:如果在目标表中使用其他数据类型。从rowversion列读取的值可以存储在varbinary列中。因此,您可以在新表中创建一个varbinary列来保存旧表中的值。当然,继续这个varbinary列不会像rowversion列那样自动更新。

答案 1 :(得分:3)

没有

  • 它是唯一的(在数据库级别)二进制(8)值
  • 该值在其他数据库中没有意义
  • 数据库引擎维护它并相应地增加

我刚刚使用着名的数据比较工具进行了检查,该工具说它可以比较它们但不同步它们。

答案 2 :(得分:0)

我不担心源数据库和目标数据库之间的列内容不同。

我假设“数据”你几乎意味着实际商业用户需要或想要的东西。

时间戳列(或行版本或其他)是内部控制数据,不应对业务用户带任何值。

与函数TSEQUALS()一起使用以确定读取和更新之间的行是否已更改。将所有列添加到where子句的捷径。