-2

我正在使用 SQL Server 2000 中的 SQL 查询分析器运行此查询:

create table TABLENAME(
        DBID_ bigint not null,
        CLASS_ varchar(255) not null,
        DBVERSION_ integer not null,
        KEY_ varchar(255),
        CONVERTER_ varchar(255),
        HIST_ bit,
        EXECUTION_ bigint,
        TASK_ bigint,
        LOB_ bigint,
    DATE_VALUE_ timestamp,
        DOUBLE_VALUE_ double,
        CLASSNAME_ varchar(255),
        LONG_VALUE_ bigint,
        STRING_VALUE_ varchar(255),
        TEXT_VALUE_ longvarchar,
        EXESYS_ bigint,
        primary key (DBID_)
    );

但是会出现错误:

服务器:消息 170,级别 15,状态 1,第 12 行第 12 行:“,”附近的语法不正确。

4

2 回答 2

2

问题在于列double上的数据类型DOUBLE_VALUE_。您需要将其更改为不同的数据类型

您还使用了无效的longvarcharon 列数据类型:TEXT_VALUE_

您也很可能需要替换timestampdatetime. 根据相应列的名称 ( DATE_VALUE_),您似乎误timestamp认为是与时间戳有关的类型,而与时间戳无关

create table TABLENAME(
        DBID_ bigint not null,
        CLASS_ varchar(255) not null,
        DBVERSION_ integer not null,
        KEY_ varchar(255),
        CONVERTER_ varchar(255),
        HIST_ bit,
        EXECUTION_ bigint,
        TASK_ bigint,
        LOB_ bigint,
        DATE_VALUE_ timestamp, -- consider changing this to datetime
        DOUBLE_VALUE_ double, -- change this to another datatype -- use float
        CLASSNAME_ varchar(255),
        LONG_VALUE_ bigint,
        STRING_VALUE_ varchar(255),
        TEXT_VALUE_ longvarchar,  -- change this datatype -- varchar(8000) or text
        EXESYS_ bigint,
        primary key (DBID_)
    );
于 2012-08-21T18:04:29.103 回答
0

double不是有效的日期类型。尝试real,或float

float:具有以下有效值的浮点精度数字数据:-1.79E + 308 到 -2.23E - 308、0 和 2.23E + 308 到 1.79E + 308。

real :具有以下有效值的浮点精度数字数据:-3.40E + 38 到 -1.18E - 38、0 和 1.18E - 38 到 3.40E + 38。

MSDN 页面。

于 2012-08-21T18:04:22.793 回答