SQL Server 2000中的多个时间戳列

p_a*_*tha 12 sql-server timestamp

我需要在SQL Server 2000中创建一个表.

create table TABLE (
        DBID_ bigint not null,
        CLASS_ varchar(255) not null,
        DBVERSION_ integer not null,
        HPROCI_ bigint,
        TYPE_ varchar(255),
        EXECUTION_ varchar(255),
        ACTIVITY_NAME_ varchar(255),
        START_ timestamp,
        END_ timestamp,
        DURATION_ bigint,
        TRANSITION_ varchar(255),
        NEXTIDX_ integer,
        HTASK_ bigint,
        primary key (DBID_)
    );
Run Code Online (Sandbox Code Playgroud)

运行时发生错误.

一个表只能有一个时间戳列.因为表TABLE 已经有一个,END_所以无法添加列.

timestampSQL Server 的最佳替代方案是什么?如何解决这个问题?

Nat*_*erl 37

timestamp顾名思义,A 不是datetime数据类型.它是一个对于服务器时钟的内部值,但实际时间不能从它的值中获得.它仅用于评估行是否已更新,因此表只能有一个此类型的列.该timestamp语法实际上是过时,现在被命名rowversion,这使得很多更有意义.

鉴于您的列名称(开始,结束),我假设您正在尝试存储实际时间戳,而应该使用datetime您的数据类型.

  • 当从另一个 DBMS 来到 Sql 服务器时,会有很多人这样做。假设时间戳是在记录上标记时间,这很奇怪,不是吗?:( (3认同)