1
我写在下面的方式存储过程返回..catch错误消息从SQL Server存储过程在前端
CREATE PROCEDURE spTest
@intCompId int,
@varCompName varchar(50)
AS
BEGIN
BEGIN TRANSACTION
BEGIN TRY
INSERT INTO tblCompanyMaster(CompId,CompName)
VALUES (@intCompId,@varCompName)
IF(@@ERROR<>0)
RAISERROR('Error',10,1)
SELECT ERROR_MESSAGE()
IF(@@ERROR=0)
BEGIN
COMMIT TRANSACTION
SELECT 0;
END
ELSE
ROLLBACK TRANSACTION
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION
END CATCH
END
GO
我如果发生错误,将返回错误信息这种情况下。我使用sqlcommand属性(如oSqlcommand.executeNonQuery())从前端调用此sp;它将返回不受影响的行,否则返回零。现在我想要的是,如果在存储过程中出现错误,而不是由error_message()返回的消息应作为异常捕获在前端,并且因为我在文本文件中写入每个异常。我怎样才能在前端捕捉到这条消息? 我的编码风格是如下....
try
{
//Some code
}
catch(exception ex)
{
//Write exception in text file.
}
我想处理该消息在恩。
..我无法理解你的第一条语句“你的存储过程中包含一个根本缺陷”。此外,我不明白你想通过这个答案说的话。你能否详细说明一下。我不想在程序中获得行数。我使用Try/Catch来处理事务,并使用@@ ERROR来获取错误消息。 –
我已经细化了。不知道什么是不明白... –