我可以抑制在C#中使用RAISERROR发送的消息

时间:2015-02-17 15:48:54

标签: c# asp.net sql-server

我们目前在ASP.NET中有一个应用程序并使用SQL Server。我们在存储过程中随时随地使用RAISERROR

现在客户端希望在我们的try catch中捕获真实的SqlException,而不是在SQL Server中打印的那个。

有可能吗?如果是,那么任何人都可以告诉我。

谢谢和问候。

1 个答案:

答案 0 :(得分:0)

感谢Jimmy回答这个问题,我也想对代码发表评论。 我的SQL存储过程就像

CREATE STORED PROCEDURE ------------
----------
------
BEGIN TRY
UPDATE table_name
 SET column1=value1,column2=value2,...
 WHERE some_column=@some_value
END TRY
BEGIN CATCH
RAISEERROR(500001,1,16)
END CATCH

因此,无论是未更新的行,还是存在一些转换错误,但无论如何,用户将仅显示RAISEERROR中描述的内容。 我刚刚在RAISEERROR之后给了一个选择@@ ERRORMESSAGE,这让我可以捕获细节。 因此,当我将结果返回到.NET中的应用程序以及RAISEERROR时,它还向我提供了@@ ERRORMESSAGE的详细信息,这帮助了我。 再次感谢所有人。