-- DROP TABLE #TGO--===== Create a table to store the results in CREATE TABLE #T ( Name SYSNAME, FileID INT, FileName NVARCHAR(512), FileGroup VARCHAR(100), Size VARCHAR(20), MaxSize VARCHAR(20), Growth VARCHAR(20), Usage VARCHAR(20) )--===== Declare a local variable for some dynamic SQL... Could use VARCHAR(MAX) in 2k5DECLARE @SQL VARCHAR(8000)--===== Create all the commands necessary for ALL databases SELECT @SQL = ISNULL(@SQL+CHAR(13),'') + REPLACE('USE [Mydb] INSERT #T EXEC sp_helpfile','Mydb',Name) FROM Master.dbo.SysDatabases--===== Execute the commands EXEC (@SQL)--===== Display the results SELECT * FROM #T ORDER BY Name
DROP TABLE #TGO--===== Supress the auto-display of rowcounts SET NOCOUNT ON --===== Create a table to store the results in CREATE TABLE #T ( Name SYSNAME, FileID INT, FileName NVARCHAR(512), FileGroup VARCHAR(100), Size VARCHAR(20), MaxSize VARCHAR(20), Growth VARCHAR(20), Usage VARCHAR(20) )--===== Declare a local variable for some dynamic SQL... Could use VARCHAR(MAX) in 2k5DECLARE @SQL1 VARCHAR(8000)DECLARE @SQL2 VARCHAR(8000)DECLARE @SQL3 VARCHAR(8000)DECLARE @SQL4 VARCHAR(8000)--===== Create all the commands necessary for ALL databases SELECT @SQL4 = CASE WHEN LEN(ISNULL(@SQL4,' ')) =7700 THEN ISNULL(@SQL4,'') + REPLACE('USE [Mydb] INSERT #T EXEC sp_helpfile','Mydb',CAST(Name AS VARCHAR)) +CHAR(13) ELSE @SQL4 END, @SQL3 = CASE WHEN LEN(ISNULL(@SQL3,' ')) =7700 THEN ISNULL(@SQL3,'') + REPLACE('USE [Mydb] INSERT #T EXEC sp_helpfile','Mydb',CAST(Name AS VARCHAR)) +CHAR(13) ELSE @SQL3 END, @SQL2 = CASE WHEN LEN(ISNULL(@SQL2,' ')) =7700 THEN ISNULL(@SQL2,'') + REPLACE('USE [Mydb] INSERT #T EXEC sp_helpfile','Mydb',CAST(Name AS VARCHAR)) +CHAR(13) ELSE @SQL2 END, @SQL1 = CASE WHEN LEN(ISNULL(@SQL1,' '))<7700 THEN ISNULL(@SQL1,'') + REPLACE('USE [Mydb] INSERT #T EXEC sp_helpfile','Mydb',CAST(Name AS VARCHAR)) +CHAR(13) ELSE @SQL1 END FROM Master.dbo.SysDatabases--===== Execute all the SQL... EXEC (@SQL1+@SQL2+@SQL3+@SQL4)--===== Display the results SELECT * FROM #T ORDER BY Name