删除记录的存储过程似乎不起作用
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
我在访问表单时遇到问题。我使用 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