2012-08-21 7 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 

L'instruction d'insertion ne fonctionne pas. Syntaxe incorrecte proche de ','.Comment insérer plusieurs lignes avec une instruction

+0

Le code de publication et un message d'erreur ne constituent pas une question sur Stack Overflow. Ce n'est pas un service de débogage gratuit. – meagar

Répondre

3

Dans SQL Server 2005, vous ne pouvez pas utiliser un , entre values:

Remplacer:

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

avec un SELECT avec UNION ALL ou plusieurs 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 

Ainsi, votre script complet serait être:

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

Vous pouvez utiliser plusieurs instructions d'insertion. Au lieu de

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

Vous pouvez faire

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

Je suppose que vous travaillez à SQL Server 2005. Il ne peut prendre en charge multivalues ​​insérer sur 2005. Vous devez insérer un par un.

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 
Questions connexes