0
저장 프로 시저에서 발생한 예외를 저장하는 데 문제가 있습니다.출력 변수로 저장 프로 시저에서 예외 발생 가져 오기
예를 들어 나는 두 개의 저장 프로 시저 P_Add
과 P_GetAdd
을 가지고 있습니다.
P_Add
은 프로 시저 P_GetAdd
이 P_Add
을 실행하는 것처럼 0으로 나눌 때 예외를 반환합니다.
P_Add
에 의해 발생한 예외를 P_GetAdd
이 실행 된 코드로 되돌리고 싶습니다.
P_Add
excetets 제공되지 않은 매개 변수는 오류입니다. 결과를 얻도록 도와주세요. 감사합니다. . P_add
저장 프로 시저를 실행할 때
create procedure P_add
(
@ErrorMessage varchar (100) OUTPUT
)
as
Declare @a int
Declare @b int
declare @c int
set @a = 1
set @b = 0
Begin try
SET @c = @a/@b
end try
begin catch
SET @ErrorMessage = ERROR_MESSAGE();
End catch
create procedure P_getADD
(
@ErrorMessage1 varchar (100) OUTPUT
)
AS
IF EXISTS (
SELECT *
FROM sysobjects
WHERE id = object_id(N'[dbo].[P_add]')
AND OBJECTPROPERTY(id, N'IsProcedure') = 1
)
BEGIN
EXEC P_add @ErrorMessage = @ErrorMessage1
END
감사합니다. 그러나 나는 RAISERROR()를 사용하여 부모 저장 프로 시저에 오류를 던질 수 있다고 생각합니다. –
대답은 게시 된 질문에 대한 것입니다. 이 답변이 정확하다면, 다른 사람들이 문제가 해결되었음을 알 수 있도록 그것을 승인 된 것으로 표시하십시오. 더 나은 답변을 찾았다면 게시하고 수락하십시오. –