• Ok, after a bit of research the only way to fix up the system tables is using sp_fixindex (or at least the code in the Proc). But you have to first set the DB into single user mode. Once done then you can affect the system indexes except for Sysobjects and Sysindexes (there is a referencing issue that makes it impossible to rebuild the clustered indexes without losing them so they are disabled against).

    However the only tables I found may be of any use to correct are the following.

    syscolumns

    syscomments

    sysdepends

    and maybe sysusers if you have a lot of accounts in the DB.

    Beyond that the rest either don't report any index or they are so small they fit on a single page and their clustered index insures order.

    Now it should also be noted that you cannot set master in single user mode while the server is running. You will have to stop and start the server in single user mode to accomplish that in master. Here were the results of what I found in master

    syscolumns

    systypes

    syscomments

    syspermissions

    sysusers

    sysdepends

    sysdatabases

    sysxlogins

    sysdevices

    sysmessages

    sysconfigures

    sysservers

    syslanguages (but would not change beyond 50%)

    syscharsets (but would not change beyond 75%)

    sysaltfiles (but would not change beyond 50%)

    sysfilegroups

    (note: not all even required doing but unless otherwise noted they were 100% when done, some of these are also in the user DBs and can be done but they were at 100% when I checked. Also, this was done on a SQL 2000 server, no 7 available for testing at this time).