删除记录的存储过程似乎不起作用

Stored procedure for deleting a record does not seem to work

我在访问表单时遇到问题。我使用 access 2013 表单作为前端,使用 sql server 2014 作为后端。该表单有一个按钮,可以通过使用存储过程删除记录。虽然,当我 select 应该删除的记录时,当我按下按钮时,它似乎起作用了。存储过程必须删除 2 个不同表中的 1 条记录,这些表与 'articlenr'.

链接在一起

我可以调试整个过程(存储过程除外)。我猜我的存储过程有问题:

ALTER PROCEDURE [dbo].[spArticleDelete]
(
    @articlenr int
)
AS
BEGIN TRANSACTION
    IF (
    SELECT COUNT(*)
    FROM Article
    WHERE articlenr = @articlenr
    ) <> 0
    BEGIN
        DELETE FROM Articleprice WHERE articlenr = @articlenr
        DELETE FROM Article WHERE articlenr = @articlenr
    END

    If @@ERROR <> 0
        BEGIN
            COMMIT TRANSACTION
            Raiserror('The article has been deleted!', 16, 1)
        END
    ELSE
        ROLLBACK
        Raiserror('The article has not been deleted!', 16,1)

希望大家能帮帮我..

您可能希望将代码更改为如下内容:

  begin try
    BEGIN TRANSACTION

            DELETE FROM x2 where i1 = 5
            DELETE FROM x2 where i1 = 6

    commit
    Raiserror('The article has been deleted!', 16, 1)

  end try

   begin catch
       if @@TRANCOUNT > 0
       begin
                  ROLLBACK
       end
       Raiserror('The article has not been deleted!', 16,1)

   end catch