-2

SQL Server 2000 の SQL Query Analyzer を使用して、次のクエリを実行しています。

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

問題はdoubleDOUBLE_VALUE_列のデータ型にあります。別のデータ型に変更する必要があります

longvarchar無効な列のデータ型も使用してTEXT_VALUE_います:

timestampに置き換える必要がある可能性も非常に高いですdatetime。対応する列の名前 ( ) に基づいて、タイムスタンプと関係があるタイプ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 に答える