Thanks for the script Jeff.
can I create this script as store proc and run it in reporting service?
I try to do it but it doesn't work
when I put
CREATE PROCEDURE SP_CheckDB
AS
DROP TABLE #T
GO
--===== 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 2k5
DECLARE @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
any comment on this?
Thanks