There are additional considerations when using preupgrade.
When preupgrade finds no errors, it exits with status 0 (zero).
preupgrade is primarily used before upgrading an installation to ensure the procedure will run smoothly. You can also run preupgrade after loading a database created by a previous version of Adaptive Server to check for problems that might prevent that database from upgrading while being brought online.
sqlupgrade calls preupgrade as part of its normal procedure.