Procedure Return Status

Stored procedures can return an integer value called a return status. The return status either indicates that the procedure executed successfully or specifies the type of error that occurred.

When you execute a stored procedure, it automatically returns the appropriate status code. The SAP ASE server currently returns these status codes:

Code

Meaning

0

Procedure executed without error

-1

Missing object

-2

Datatype error

-3

Process was chosen as deadlock victim

-4

Permission error

-5

Syntax error

-6

Miscellaneous user error

-7

Resource error, such as out of space

-8

Nonfatal internal problem

-9

System limit was reached

-10

Fatal internal inconsistency

-11

Fatal internal inconsistency

-12

Table or index is corrupt

-13

Database is corrupt

-14

Hardware error

Codes -15 through -99 are reserved for future use.

Users can generate a user-defined return status with the return statement. The status can be any integer other than 0 through -99. The following example returns 1 when a book has a valid contract and 2 in all other cases:
create proc checkcontract @titleid tid 
as 
if (select contract from titles where 
        title_id = @titleid) = 1 
   return 1 
else 
   return 2
checkcontract @titleid = "BU1111"
 (return status = 1)
checkcontract @titleid = "MC3026"
 (return status = 2)

If more than one error occurs during execution, the code with the highest absolute value is returned. User-defined return values take precedence over system-defined values.