SQL事务不起作用:
BEGIN TRANSACTION AddEmployees
INSERT INTO Employees
VALUES(N'595002', N'John Meah', N'20000212', 32.25),
(N'928375', N'Chuck Stansil', N'20080628'),
(N'792764', N'Orlando Perez', N'20000616', 12.95);
COMMIT TRANSACTION AddEmployees;
GO
答案 0 :(得分:2)
你在行中缺少参数,请使用以下行:
(N'928375', N'Chuck Stansil', N'20080628', null),
这与事务无关,这是因为表值构造函数中每行的列数必须相同。
如果您的表不允许为null,则传递DEFAULT的相关参数。
答案 1 :(得分:2)
部分问题是你使用了错误的语法。在SQL-Server 2005中,您不能在,
语句之间使用逗号values
。您必须指定每个INSERT INTO....VALUES...
语句。然后在您的第二个INSERT
中,您没有正确数量的参数:
BEGIN TRANSACTION AddEmployees
INSERT INTO Employees
VALUES(N'595002', N'John Meah', N'20000212', 32.25)
INSERT INTO Employees
VALUES(N'928375', N'Chuck Stansil', N'20080628', null)
INSERT INTO Employees
VALUES(N'792764', N'Orlando Perez', N'20000616', 12.95)
COMMIT TRANSACTION AddEmployees;
GO
答案 2 :(得分:1)
为第四个数据库字段设置默认值,以便语句可以执行。