2014-09-26 6 views
0

Я новичок в Microsoft SQL Server, и я занимаюсь этим упражнением в своей книге. Я до сих пор неплохо справляюсь ... Я пытаюсь создать таблицу из этого кода, и она говорит о синтаксической ошибке в create table. Я не уверен, я провел исследования, не получив удачи в решении. Это то, что говорится в книге, но ее не работает ... Любая помощь и руководство будут очень благодарны.Ошибка синтаксиса SQL в CREATE TABLE

CREATE TABLE SALESPERSON 
(
    NickName     Char (35)     NOT NULL,   
    LastName     Char (25)     NOT NULL, 
    FirstName     Char (25)     NOT NULL, 
    HireDate     DateTime     NOT NULL 
    WageRate     Numeric     NOT NULL, 
    CommissionRate    Numeric     NOT NULL, 
    Phone      Char (12)     NOT NULL, 
    Email      Varchar (100)    NOT NULL, 

    CONSTRAINT SALESPERSON_PK PRIMARY KEY(NickName) 
); 
+1

Вам не хватает запятой –

+3

Side Примечание: помните, что 'CHAR (35)' будет означать, что вы ** всегда ** получаете 35 символов - даже если вы введете только 5 (остальные будут заполнены пробелами). Обычно это не очень хорошая идея - для любого столбца строки более 5 символов я бы рекомендовал всегда использовать 'VARCHAR (n)' вместо этого. –

ответ

2

Предполагая, что вы не потеряете ни символы при вставке сценария здесь, я думаю, что ошибка синтаксиса может быть связана с отсутствующей запятой здесь.

HireDate DateTime NOT NULL, WageRate Numeric 
         ^
+0

Ничего себе, я чувствую себя дураком. Я смотрел на это более 10 минут и пропустил что-то настолько простое ... Я немного смущен. Спасибо огромное! – guinea2

0

Вы забыли добавить запятую после "HireDate DateTime NOT NULL":

попробовать следующее:

CREATE TABLE IF NOT EXISTS `SALESPERSON` (
    `NickName` char(35) NOT NULL, 
    `LastName` char(25) NOT NULL, 
    `FirstName` char(25) NOT NULL, 
    `HireDate` datetime NOT NULL, 
    `WageRate` decimal(10,0) NOT NULL, 
    `CommissionRate` decimal(10,0) NOT NULL, 
    `Phone` char(12) NOT NULL, 
    `Email` varchar(100) NOT NULL, 
    PRIMARY KEY (`NickName`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 
+0

Не могу поверить, что я пропустил это. Спасибо! – guinea2

+0

Почему вы добавили обратные ссылки вокруг каждого идентификатора? И почему предполагается, что MySQL, когда синтаксис отлично работает в других СУБД (например, SQL Server)? – ErikE

Смежные вопросы