如题,timestamp该怎么用?

解决方案 »

  1.   

    注释每个数据库都有一个计数器,当对数据库中包含 rowversion 列的表执行插入或更新操作时,该计数器值就会增加。此计数器是数据库行版本。这可以跟踪数据库内的相对时间,而不是时钟相关联的实际时间。一个表只能有一个 rowversion 列。每次修改或插入包含 rowversion 列的行时,就会在 rowversion 列中插入经过增量的数据库行版本值。这一属性使 rowversion 列不适合作为键使用,尤其是不能作为主键使用。对行的任何更新都会更改行版本值,从而更改键值。如果该列属于主键,那么旧的键值将无效,进而引用该旧值的外键也将不再有效。如果该表在动态游标中引用,则所有更新均会更改游标中行的位置。如果该列属于索引键,则对数据行的所有更新还将导致索引更新。timestamp 的数据类型为 rowversion 数据类型的同义词,并具有数据类型同义词的行为。在 DDL 语句,请尽量使用 rowversion 而不是 timestamp。有关详细信息,请参阅数据类型同义词 (Transact-SQL)。Transact-SQLtimestamp 数据类型不同于在 ISO 标准中定义的 timestamp 数据类型。
    注意 注意不推荐使用 timestamp 语法。后续版本的 Microsoft SQL Server 将删除该功能。请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。在 CREATE TABLE 或 ALTER TABLE 语句中,不必为 timestamp 数据类型指定列名,例如:
    复制CREATE TABLE ExampleTable (PriKey int PRIMARY KEY, timestamp);如果不指定列名,则 SQL Server 数据库引擎 将生成 timestamp 列名;但 rowversion 同义词不具有这样的行为。在使用 rowversion 时,必须指定列名,例如:
    复制CREATE TABLE ExampleTable2 (PriKey int PRIMARY KEY, VerCol rowversion) ;