-3
CREATE TABLE [PIPE](
ID double,
REV nvarchar(100),
SCHEDULE double 
RATING nvarchar(100) ,
MATERIAL nvarchar(100) ,
MEAS_UNITS nvarchar(100) ,
MANU_FACT nvarchar(100) ,
EC_CLASS_NAME nvarchar(100) ,
WEIGHT_DRY double ,
END_COND_1 nvarchar(100) ,
PIPE_OD_M double ,
PIPE_OD_R double ,
END_COND_2 nvarchar(100) ,
RUN_SIZE double ,
MAIN_SIZE double ,
MAT_GRADE nvarchar(100) ,
SHORT_DESC nvarchar(100) ,
LONG_DESCR nvarchar(100) ,
WALL_THICKNESS_1 double ,
PIECE_MARK nvarchar(100));

我收到以下错误,请建议“Msg 102, Level 15, State 1, Line 2 ',' 附近的语法不正确。”

4

5 回答 5

1
SCHEDULE double RATING nvarchar(100)

你忘了加倍后的逗号。

于 2013-04-29T10:49:41.650 回答
0

试试这个:(你忘了 ',' 在 SCHEDULE double 之后)

CREATE TABLE [PIPE]( ID double, REV nvarchar(100), SCHEDULE double, RATING nvarchar(100) , MATERIAL nvarchar(100) , MEAS_UNITS nvarchar(100) , MANU_FACT nvarchar(100) , EC_CLASS_NAME nvarchar(100) , WEIGHT_DRY double , END_COND_1 nvarchar(100) , PIPE_OD_M double , PIPE_OD_R double , END_COND_2 nvarchar(100) , RUN_SIZE double , MAIN_SIZE double , MAT_GRADE nvarchar(100) , SHORT_DESC nvarchar(100) , LONG_DESCR nvarchar(100) , WALL_THICKNESS_1 double , PIECE_MARK nvarchar(100));

也将 double 更改为 float

CREATE TABLE PIPE
    ( 
    ID int,
    REV nvarchar(100),
    SCHEDULE1 float,
    RATING nvarchar(100),
    MATERIAL nvarchar(100),
    MEAS_UNITS nvarchar(100),
    MANU_FACT nvarchar(100),
    EC_CLASS_NAME nvarchar(100),
    WEIGHT_DRY float, 
    END_COND_1 nvarchar(100),
    PIPE_OD_M float,
    PIPE_OD_R float, 
    END_COND_2 nvarchar(100),
    RUN_SIZE float,
    MAIN_SIZE float,
    MAT_GRADE nvarchar(100),
    SHORT_DESC nvarchar(100),
    LONG_DESCR nvarchar(100),
    WALL_THICKNESS_1 float, 
    PIECE_MARK nvarchar(100))
于 2013-04-29T10:50:57.603 回答
0

您错过了字段之间的逗号,请查看 SQLFIDDLE

于 2013-04-29T10:52:21.363 回答
0

SQL Server中没有double数据类型,您需要使用其中一个,float或者real如果您想要近似数字。schedule此外,您在and之间缺少逗号rating

CREATE TABLE [PIPE](
  ID float,
  REV nvarchar(100),
  SCHEDULE float,
  RATING nvarchar(100) ,
  MATERIAL nvarchar(100) ,
  MEAS_UNITS nvarchar(100) ,
  MANU_FACT nvarchar(100) ,
  EC_CLASS_NAME nvarchar(100) ,
  WEIGHT_DRY float ,
  END_COND_1 nvarchar(100) ,
  PIPE_OD_M float ,
  PIPE_OD_R float ,
  END_COND_2 nvarchar(100) ,
  RUN_SIZE float ,
  MAIN_SIZE float ,
  MAT_GRADE nvarchar(100) ,
  SHORT_DESC nvarchar(100) ,
  LONG_DESCR nvarchar(100) ,
  WALL_THICKNESS_1 float ,
  PIECE_MARK nvarchar(100)
);

我的建议是考虑使用确切的数字数据类型,例如decimalnumeric

于 2013-04-29T10:52:24.140 回答
0

试试这个——

CREATE TABLE dbo.[PIPE] 
(
        ID DECIMAL(18,2)
    ,   REV NVARCHAR(100)
    ,   SCHEDULE DECIMAL(18,2)
    ,   RATING NVARCHAR(100)
    ,   MATERIAL NVARCHAR(100)
    ,   MEAS_UNITS NVARCHAR(100)
    ,   MANU_FACT NVARCHAR(100)
    ,   EC_CLASS_NAME NVARCHAR(100)
    ,   WEIGHT_DRY DECIMAL(18,2)
    ,   END_COND_1 NVARCHAR(100)
    ,   PIPE_OD_M DECIMAL(18,2)
    ,   PIPE_OD_R DECIMAL(18,2)
    ,   END_COND_2 NVARCHAR(100)
    ,   RUN_SIZE DECIMAL(18,2)
    ,   MAIN_SIZE DECIMAL(18,2)
    ,   MAT_GRADE NVARCHAR(100)
    ,   SHORT_DESC NVARCHAR(100)
    ,   LONG_DESCR NVARCHAR(100)
    ,   WALL_THICKNESS_1 DECIMAL(18,2)
    ,   PIECE_MARK NVARCHAR(100)
);
于 2013-04-29T11:02:21.120 回答