收到错误:COMMIT TRANSACTION请求在SQL脚本中没有对应的BEGIN TRANSACTION

时间:2014-02-14 16:22:54

标签: sql sql-server-2008 stored-procedures

尝试对应用程序的数据库执行更新,然后SQL服务器向我发送了一个Commit没有相应的正在进行的事务。我很友好地指出了程序,但我似乎无法找到问题所在。

这是我的代码:

ALTER PROCEDURE [dbo].[sp_tblUser_Update] @UserID             INTEGER,
                                          @UserName           NVARCHAR(20),
                                          @Password           NVARCHAR(10),
                                          @Yard               NVARCHAR(50),
                                          @NewRole            NVARCHAR(50),
                                          @FullName           NVARCHAR(50),
                                          @Email              NVARCHAR(50),
                                          @BCConEmails        BIT,
                                          @CrewStatusReadOnly BIT
AS
  BEGIN
      -- SET NOCOUNT ON added to prevent extra result sets from
      -- interfering with SELECT statements.
      SET NOCOUNT ON;

      -- Insert statements for procedure here
      UPDATE tblUser
      SET    UserName = @UserName,
             UserPassword = @Password,
             Yard = @Yard,
             Fullname = @FullName,
             EmailAddress = @Email,
             NewRole = @NewRole,
             BCConEmails = @BCConEmails,
             CrewStatusReadOnly = @CrewStatusReadOnly
      WHERE  ( UserID = @UserID )
  END

GO

COMMIT 

2 个答案:

答案 0 :(得分:2)

您不需要COMMIT行,因为代码中的END会终止前一个BEGIN。如果您要添加交易,则应在更新语句前添加BEGIN TRANSACTION,并在COMMIT

之前移动END

答案 1 :(得分:-1)

begin tran
delete from Customerages 
where Age=25
commit;
begin tran
delete from Customerages 
where Age=25
rollback;