2012-08-21 2 views
-1
CREATE DATABASE Exercise 

USE Exercise; 
Go 

CREATE TABLE Employees 
(
EmployeeNumber nchar(10), 
EmployeeName nvarchar(50), 
DateHired datetime, 
HourlySalary money 
); 
GO 


INSERT INTO Employees 
VALUES(N'593705', N'Frank Somah', N'20061004', 26.15), 
(N'720947', N'Paul Handsome', N'20000802', 36.05); 
GO 

INSERT INTO Employees(EmployeeName, EmployeeNumber, DateHired) 
VALUES(N'Clarice Simms', N'971403', N'20011112'); 
GO 

Инструкция вставки не работает. Неверный синтаксис рядом с ','.Как вставить несколько строк с одной инструкцией

+0

Проводка и сообщение об ошибке не представляют собой вопрос о переполнении стека. Это не бесплатная служба отладки. – meagar

ответ

3

В SQL Server 2005 вы не можете использовать , между values:

Заменить:

INSERT INTO Employees 
VALUES(N'593705', N'Frank Somah', N'20061004', 26.15), 
(N'720947', N'Paul Handsome', N'20000802', 36.05); 

с SELECT с UNION ALL или множественным INSERT...VALUES...:

INSERT INTO Employees 
SELECT N'593705', N'Frank Somah', N'20061004', 26.15 
UNION ALL 
SELECT N'720947', N'Paul Handsome', N'20000802', 36.05 

INSERT INTO Employees 
Values(N'593705', N'Frank Somah', N'20061004', 26.15) 

INSERT INTO Employees 
Values(N'720947', N'Paul Handsome', N'20000802', 36.05) 
GO 

INSERT INTO Employees(EmployeeName, EmployeeNumber, DateHired) 
VALUES(N'Clarice Simms', N'971403', N'20011112'); 
GO 

Таким образом, ваш полный сценарий будет be:

CREATE TABLE Employees 
(
    EmployeeNumber nchar(10), 
    EmployeeName nvarchar(50), 
    DateHired datetime, 
    HourlySalary money 
); 
GO 


INSERT INTO Employees 
select N'593705', N'Frank Somah', N'20061004', 26.15 
union all 
select N'720947', N'Paul Handsome', N'20000802', 36.05 
GO 

INSERT INTO Employees(EmployeeName, EmployeeNumber, DateHired) 
VALUES(N'Clarice Simms', N'971403', N'20011112'); 
GO 
1

Вы можете использовать несколько операторов вставки. Вместо

INSERT INTO Employees 
VALUES(N'593705', N'Frank Somah', N'20061004', 26.15), 
(N'720947', N'Paul Handsome', N'20000802', 36.05); 

Вы могли бы сделать

INSERT INTO Employees 
    VALUES (N'593705', N'Frank Somah', N'20061004', 26.15); 
INSERT INTO Employees 
    VALUES (N'720947', N'Paul Handsome', N'20000802', 36.05); 
0

Я предполагаю, что вы работаете в SQL Server 2005. Она не может поддерживать multivalues ​​вставки на 2005. Вы должны вставить его один за другим.

INSERT INTO Employees 
VALUES(N'593705', N'Frank Somah', N'20061004', 26.15) 
GO 
INSERT INTO Employees 
VALUES(N'720947', N'Paul Handsome', N'20000802', 36.05) 
GO 
INSERT INTO Employees(EmployeeName, EmployeeNumber, DateHired) 
VALUES(N'Clarice Simms', N'971403', N'20011112') 
GO 
Смежные вопросы