A. This message will only occur with SQL 4.x and is fixed in all subsequent versions. The ONLY permanent fix is to upgrade to SQL 6.0 or above.
The error occurs if SQL has crashed during the allocation of an extent - this sometimes leaves a "being allocated" bit set in the extent. When SQL comes to need that extent to expand a table then you get the error because SQL thinks the bit should never me set and some form of corruption has occurred.
Because SQL always allocates extents in the same order, once you get the error you will carry on getting it unless you drop some objects and free up extents nearer the start of the database that it can allocate ok. This only puts off the time till the next 1112.
To "fix" the error you can get and run a file called 1112.EXE from Microsoft PSS or ftp.microsoft.com/bussys/sql/transfer. This contains details of what to do to run it - note the database needs to be in single-user mode at the time. All it does is whiz through the extent map and reset any bits that show as "being allocated".
Note this "fix" only fixes that particular occurence of the problem. The problem will come back, so move to a supported version of SQL that has a permanent fix for this problem.
Applies to SQL Server versions : 4.x
Related FAQ articles : n/a
Related Microsoft Kb articles : n/a
Other related information : n/a