Script to analyze all populated tables for internal fragmentation.
It would be a good idea to update usages prior to running this script as it depends on the row count in sysindexes to determine which tables to analyze. If you run DBCC SHOWCONTIG on an empty table, you will get an error.
DELETE scripts WHERE name = 'script_showcontig'
GO
INSERT scripts
VALUES('script_showcontig','DECLARE @id int')
INSERT scripts
VALUES('script_showcontig','SET NOCOUNT ON')
INSERT scripts
VALUES('script_showcontig','SELECT @id = MIN(id) FROM sysobjects')
INSERT scripts
VALUES('script_showcontig','WHERE id > 99')
INSERT scripts
VALUES('script_showcontig','AND id IN (SELECT id FROM sysindexes')
INSERT scripts
VALUES('script_showcontig',' WHERE rows > 0)')
INSERT scripts
VALUES('script_showcontig','WHILE @id IS NOT NULL')
INSERT scripts
VALUES('script_showcontig',' BEGIN')
INSERT scripts
VALUES('script_showcontig',' DBCC SHOWCONTIG(@id)')
INSERT scripts
VALUES('script_showcontig',' SELECT @id = MIN(id) FROM sysobjects')
INSERT scripts
VALUES('script_showcontig',' WHERE id > @id')
INSERT scripts
VALUES('script_showcontig',' AND id IN (SELECT id FROM sysindexes')
INSERT scripts
VALUES('script_showcontig',' WHERE rows > 0)')
INSERT scripts
VALUES('script_showcontig',' END')