删除前检查是否成功插入 [英] Check for successful insert prior to delete
本文介绍了删除前检查是否成功插入的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有两个表:表1和表2.在ASP.NET页上,我调用了一个存储过程,如果它们符合特定条件,则将记录(表中的记录)插入表1中的表2中.将记录成功插入表2后,需要从表1中删除这些记录.
?我如何首先在存储过程中检查插入是否成功?我尝试使用@return_value =0.如果实际上存储过程导致1,我还需要发回我的asp.net页,这是一个错误.在插入和删除之间,如何最好地检查错误-试听吗?
如果员工通过评估期,则使用表1中的值将记录插入表2中.
ALTER 过程 [dbo].[TestReturnValue]
AS
DECLARE @ return_value int
声明 @ EmpID int
声明 @ EvalBeginDate 日期
开始
- 添加了SET NOCOUNT ON以防止出现额外的结果集
- 干扰SELECT语句.
SET 没有计数 打开;
插入 INTO 表_2(EmpID,EvalBeginDate)
值( @ EmpID , @ EvalBeginDate )
删除 FROM 表_1
位置 EmpID = @ EmpID ;
END
解决方案
您可以使用try/catch或检查@@ ERROR,0表示成功,其他都是错误.
是的,马克是对的.也有这些文章.
SQL Server 2005中的错误处理概述 [深入了解RAISERROR-SQLServer 2005 [ALTER PROCEDURE [dbo].[TestReturnValue] AS DECLARE @return_value int DECLARE @EmpID int DECLARE @EvalBeginDate date BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; INSERT INTO Table_2 (EmpID, EvalBeginDate) VALUES (@EmpID,@EvalBeginDate) DELETE FROM Table_1 WHERE EmpID = @EmpID; END
Thank you for helping a newbie!解决方案You could use a try/catch or check @@ERROR, 0 indicates success and anything else is an error.
Yeah, Mark is right. Also have these articles too.
Overview of Error Handling in SQL Server 2005[^]
A Closer Look Inside RAISERROR - SQLServer 2005[^]
这篇关于删除前检查是否成功插入的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文