MS Access Создать таблицу с автоинкрементом и датой по умолчанию - PullRequest
5 голосов
/ 14 мая 2011

Я пытаюсь создать таблицу MS Access с идентификатором автоинкремента и полем «Дата по умолчанию», но следующий запрос всегда говорит «Синтаксическая ошибка в операторе CREATE TABLE.»:

CREATE TABLE Table1
(
    [ID] AUTOINCREMENT,
    [Email] TEXT(255),
    [ProductID] NUMBER,
    [DateCreate] DATETIME,
    [DateSend] DATETIME
);


ALTER TABLE Table1
ALTER [DateSend] DATETIME DEFAULT NOW() NOT NULL;

Кто может помочь мне исправить этот запрос,Спасибо!

Ответы [ 2 ]

15 голосов
/ 14 мая 2011

В Ms-Access существует множество типов NUMBER, поэтому вам нужно быть конкретным. Я думаю, вы хотите Integer.

CREATE TABLE Table1
(
    [ID] AUTOINCREMENT,
    [Email] TEXT(255),
    [ProductID] INTEGER,
    [DateCreate] DATETIME,
    [DateSend] DATETIME
);

Синтаксис ALTER TABLE требует ALTER COLUMN:

ALTER TABLE Table1
ALTER COLUMN
    [DateSend] DATETIME DEFAULT NOW() NOT NULL;

Вы также можете иметь эти два в одном утверждении:

CREATE TABLE Table1
(
    [ID] AUTOINCREMENT,
    [Email] TEXT(255),
    [ProductID] INTEGER,
    [DateCreate] DATETIME,
    [DateSend] DATETIME DEFAULT NOW() NOT NULL
);

Лучше всего иметь PRIMARY KEY на каждом столе, и вы, вероятно, намеревались использовать это для ID:

    [ID] AUTOINCREMENT PRIMARY KEY,

Страница с большим количеством полезной информации о том, как обрабатывать Access с SQL:

Средний Microsoft Jet SQL для Access 2000

2 голосов
/ 08 августа 2012
CREATE TABLE Tblcontact
(
contactid AUTOINCREMENT PRIMARY KEY ,
firstname CHAR (60),
lastname CHAR (60),
email VARCHAR (75)
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...