尝试在 SQL 中插入多个值时如何修复语句结尾?

How to fix end of statement when trying to insert multiple values in SQL?

我刚开始使用 Access 2016 完成 SQL 的数据库课程。我收到语句结束错误,我不确定如何修复它。

我的table代码是`

Create Table Pet_Owner (
OwnerID autoincrement Null,
OwnerLastName Char(30) Not Null,
OwnerFirstName Char(30) Not Null,
OwnerPhone Int Null,
OwnerEmail VarChar(100) Not Null Unique,
Constraint Pet_Owner_PK Primary Key(OwnerID)
);

到目前为止,我尝试添加的插入查询是

Insert Into Pet_Owner (OwnerLastName, OwnerFirstName, OwnerPhone, OwnerEmail) Values (
'Downs' , 'Marsha' , '555-537-8765' , 'Marsha.downs@somewhere.com') 
Into Pet_Owner (OwnerLastName, OwnerFirstName, OwnerPhone, OwnerEmail) Values (
'James' , 'Richard' , '555-537-7654' , 'Richard.James@somewhere.com') 
Insert Into Pet_Owner (OwnerLastName, OwnerFirstName, OwnerPhone, OwnerEmail) Values (
'Frier' , 'Liz' , '555-537-6543' , 'Liz.Frier@somewhere.com') 
Insert Into Pet_Owner (OwnerLastName, OwnerFirstName, OwnerEmail) Values (
'Trent', 'Miles', 'Miles.Trent@somewhere.com') ;

当我使用 append 时,它说我在第一组值的末尾缺少一个分号,但如果我添加它,它就会说我在语句末尾有字符。如果有人可以帮助我或指出正确的方向来解决错误,我将不胜感激。谢谢

您需要以 insert into 开始每个语句,并用 ; 分隔它们。

Insert Into Pet_Owner (OwnerLastName, OwnerFirstName, OwnerPhone, OwnerEmail)
Values ('Downs' , 'Marsha' , '555-537-8765' , 'Marsha.downs@somewhere.com');

Insert Into Pet_Owner (OwnerLastName, OwnerFirstName, OwnerPhone, OwnerEmail) 
Values ('James' , 'Richard' , '555-537-7654' , 'Richard.James@somewhere.com');

Insert Into Pet_Owner (OwnerLastName, OwnerFirstName, OwnerPhone, OwnerEmail)
Values ('Frier' , 'Liz' , '555-537-6543' , 'Liz.Frier@somewhere.com');

Insert Into Pet_Owner (OwnerLastName, OwnerFirstName, OwnerEmail) 
Values ('Trent', 'Miles', 'Miles.Trent@somewhere.com');

您的插入查询包含 4 个 INSERT ... VALUES 语句。因此,当您尝试 运行 该查询时,您是在要求 Access 执行一批语句。但是 Access 不会执行批处理语句。您必须单独执行它们。

而且当你一个一个执行的时候,你会发现另外两个问题:

  1. OwnerPhone Int Null 将不接受文本值,例如“555-537-8765”;将其设为文本而不是数字类型字段。

  2. 第二个插入语句不包含INTO关键字。

我用这条语句创建了 table:

Create Table Pet_Owner (
OwnerID autoincrement Primary Key,
OwnerLastName Char(30) Not Null,
OwnerFirstName Char(30) Not Null,
OwnerPhone VarChar(12) Null,
OwnerEmail VarChar(100) Not Null Unique
);

OwnerPhone 是关键的变化。我更改了主键分配只是为了向您展示一种不同的方法。)

然后分别处理每个插入语句,将其加载到一个变量中,strInsert,然后像这样执行:

CurrentDb.Execute strInsert, dbFailOnError

该方法成功地向 Pet_Owner table 添加了 4 行。