문제

저장된 절차에서 매개 변수가 1 미만인 지 테스트하려고합니다. 그렇다면 친숙한 메시지와 매개 변수의 값으로 오류를 제기합니다.

내 코드는 다음과 같습니다.

IF @ID IS NULL OR @ID <= 0
BEGIN
    RAISERROR 27001 'ID is ?????. ID cannot be null or less then zero.'
    RETURN 27001
END

내가 다시 원하는 것은 다음과 같습니다.

"ID는 0입니다. ID는 0 이하이 될 수 없습니다."또는"ID는 NULL입니다. ID는 널 또는 0보다 적을 수 없습니다."

나는 바르 차를 만들고 다음과 같은 오류를 높이려고 시도했습니다.

RAISERROR 27001 @message

그러나 그것은 오류가 발생합니다 "Raiserror로 전달 된 메시지 번호 27001은 Sysmessages 카탈로그에 존재하지 않습니다."

도움이 되었습니까?

해결책 2

NULL의 @ID 값은 빈 문자열로 기록되지만 이것은 작동합니다.

IF @ID IS NULL OR @ID <= 0
BEGIN

    DECLARE @msg varchar(250)
    SELECT @msg = 'ID is ' +  Convert(varchar(15), @ID) + '. Value cannot be null or less then zero'

    RAISERROR 27001 @msg
    RETURN 27001
END

다른 팁

문제는 이것입니다. SP_ADDMESSAGE를 호출하여 사용자 정의 오류 #을 데이터베이스에 추가해야합니다.

sp_addmessage 27001, "ID is %1. ID cannot be null or less than zero."

그런 다음 위와 같이 Raiserror를 호출하거나 이렇게 호출 할 수 있습니다 (SP_ADDMESSAGE에서 정의한 메시지 문자열을 사용하려면) :

RAISERROR 27001, @ID

편집 : (주소 주소)

먼저, 당신이 너무 기울어 진다면, 메시지로서의 위치 인수와 함께 27001을 등록하십시오.

sp_addmessage 27001, "%1"

둘째, SP_ADDMESSAGE를 사용하여 등록한 기본 메시지를 표시하지 않아도됩니다. 예를 들어, 이것은 기본 메시지가 무엇인지에 관계없이 별도의 메시지를 표시해야합니다.

RAISERROR 27001 @message
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top