在';附近获取错误语法';SQL Server 2000中的错误
我正在使用SQL Server 2000中的SQL查询分析器运行此查询:在';附近获取错误语法';SQL Server 2000中的错误,sql,tsql,sql-server-2000,Sql,Tsql,Sql Server 2000,我正在使用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,
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_)
);
但出现了一个错误:
服务器:Msg 170,15级,状态1,第12行,第12行:“,”附近的语法不正确
double
不是有效的日期类型。尝试real
,或float
浮点:具有以下有效值的浮点精度数字数据:
-1.79E+308至-2.23E-308,0和2.23E+308至1.79E+308
实数:具有以下有效值的浮点数字数据:
-3.40E+38至-1.18E-38,0和1.18E-38至3.40E+38
问题在于
double\u VALUE\u
列上的double
数据类型。您需要将其更改为其他数据类型
您还在列TEXT\u VALUE\u
上使用的数据类型为longvarchar
,该数据类型无效:
您也很可能需要将时间戳
替换为日期时间
。根据相应列的名称(DATE\u VALUE)\uu
),您似乎将timestamp
误认为是与时间戳有关的类型
这不是SQL Server方言看起来longvarchar是longvarchar可能是用户定义的数据类型谢谢。。我有一个sql,我想在SQLServer2000中执行它。我将纠正脚本,因为SQL 2000中不存在
varchar(max)
使用varchar(8000)
(最大的varchar)或Text
@Magnus谢谢,已修复。我没有要测试的SQL 2000实例。:)
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_)
);