删除前检查是否成功插入 [英] Check for successful insert prior to delete

查看:72
本文介绍了删除前检查是否成功插入的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有两个表:表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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆