2016-08-05 6 views
1

Я использую SQL в MS Access. Я получаю эту ошибку:Как создать эти две таблицы в одной команде SQL в доступе?

Syntax error in create table statement⁠⁠⁠⁠

Это мой код:

CREATE TABLE school 
(
    ID INTEGER CONSTRAINT ID PRIMARY KEY, 
    KenyeNo INTEGER 
); 

CREATE TABLE student 
(
    ID_st INTEGER CONSTRAINT ID_st PRIMARY KEY, 
    classNo INTEGER 
); 

Как создать эти две таблицы в одной команде SQL в MS Access?

+1

помогает ли ответ? –

+1

Я предполагаю, что вам нужна одна команда для каждой таблицы. – jarlh

+0

не работает – Keedy

ответ

2

С помощью команды DoCmd.RunSQL вы можете выполнить только один запрос. но вы можете написать простую функцию или процедуру, в которой у вас будет две команды, каждая для одного запроса CREATE TABLE.

Попробуйте это, я проверил, и она работает:

DoCmd.RunSQL "CREATE TABLE school (ID INT PRIMARY KEY, KenyeNo INT)" 
DoCmd.RunSQL "CREATE TABLE student(ID_st INT PRIMARY KEY, classNo INT)" 
+0

Разве это не две команды? – jarlh

+3

Да, я пропустил эту часть. BTW, Access допускает только один оператор SQL для каждого запроса. –

+0

не работает – Keedy

0

Я не уверен, что делает это в одной строке SQL, но это то, что я хотел бы предложить для создания таблицы, с помощью SQL , в MS Access. Я попробовал это, и, похоже, он работал так, как я думаю, вы этого хотите.

Основное различие между тем, что вы делаете то, что я заменил вторую ссылку на поле «ID» с MyFieldConstraint, как и в предыдущем примере на этой странице Microsoft: https://msdn.microsoft.com/en-us/library/bb177893(v=office.12).aspx

Set dbs = CurrentDb 

dbs.Execute "CREATE TABLE school " _ 
    & "(ID INTEGER CONSTRAINT MyFieldConstraint PRIMARY KEY, " _ 
    & "KenyeNo INTEGER);" 

dbs.Execute "CREATE TABLE student " _ 
    & "(Id_st INTEGER CONSTRAINT MyFieldConstraint PRIMARY KEY, " _ 
    & "classNo INTEGER);" 

dbs.Close 

Надеется, что это помогает!