This SP is not called from anywhere within AbaPerls, but is a utility procedure to find all abnormalities in abasysobejcts in relations to the system tables (sysobjects/sysindexes/systypes).


The procedure takes no parameters and produces six different result sets, as detailed below. Each result set is preceeded with a PRINT message, why it's easier to follow the output with "Results in text" in Query Analyzer.


* Objects that are in sysobjects & co but not in abasysobjects. (This may be objects that have been loaded manually outside AbaPerls.)

* Objects that are in abasysobjects but not in the system tables. (This may be objects that have been inadvertently dropped from the database.)

* Objects that are in both tables but where creation-time information does not match, (This may be objects that someone has altered the object outside AbaPerls, for instance from Query Analyzer.)

* Objects that are in abasysobjects, but do not have a label associated with them. (This may be objects that were loaded directly with ABASQL. A development database will have loads of these.)

* Object that are in abasysobjects with a label is later than the label for the subsystem in abasubsystems. (These may have been loaded by a patch script or with ABASQL reading from version-control.)

* Objects that are in abasysobjects but does not have a subsystem. In a database where abasysobjects was initiated with ap_zz_sob_load_sp, there will be an abundance of these.


As a rule of thumb, objects in the first three result sets are the most cause for concern. But if you want to avoid over-writing fixes in a producion database, also result sets four and five calls for for your attention.