sql事务无法正常工作

时间:2012-08-21 14:43:40

标签: sql sql-server-2005

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

3 个答案:

答案 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)

为第四个数据库字段设置默认值,以便语句可以执行。