• Even though I do not like the cursor, I don't think there could be another way since you are trying to do some dynamic SQL There. Here's a solution, I've tried it, you can add the fields you want from the sysfiles table in the table, and it will refresh everytime.

    USE tempdb

    GO

    DECLARE getDBName CURSOR FOR

    SELECT name

    FROM sys.databases

    OPEN getDBName

    DECLARE @dbname VARCHAR(101)

    DECLARE @dbsys VARCHAR(101)

    DECLARE @SQL NVARCHAR(2000)

    IF EXISTS (SELECT *

    FROM sys.objects

    WHERE object_id = OBJECT_ID(N'[dbo].[DBGrowth]')

    AND TYPE IN (N'U'))

    DROP TABLE [dbo].[DBGrowth]

    CREATE TABLE DBGrowth (

    ServerName NVARCHAR(128),

    DbName NVARCHAR(128),

    NVARCHAR(128),

    [MaxSize] NVARCHAR(128),

    [growth] NVARCHAR(128),

    DATE DATETIME)

    FETCH NEXT FROM getDBName

    INTO @dbname

    WHILE @@FETCH_STATUS = 0

    BEGIN

    SET @dbsys = '['

    + @dbname

    + '].dbo.sysfiles'

    SET @SQL = ('INSERT TEMPDB.dbo.DBGROWTH '

    + ' SELECT @@SERVERNAME, '''

    + @dbname

    + ''',size, maxsize, growth, getDate() '

    + ' FROM '

    + @DbSys)

    PRINT @SQL

    EXEC sp_executeSQL

    @SQL

    FETCH NEXT FROM getDBName

    INTO @dbname

    END

    CLOSE getDBName

    DEALLOCATE getDBName

    SELECT *

    FROM DBGrowth

    Hope it helps,

    Cheers,

    J-F

    Cheers,

    J-F