A server message number is mapped to a SQLCODE of 0 if it has a severity of 0. Other server messages may also be mapped to a SQLCODE of 0.
Server message numbers are inverted before being placed into SQLCODE. This ensures that SQLCODE is negative if an error has occurred.
For a list of server messages, execute the Transact-SQL statement:
select * from sysmessages