Two questions:
1: the "sid > 1"
If the "sa" create a product database,the sid in the sysdatabases table will be 'Ox01'.Then the command doesn't work well.
2:the query listed below
Declare @DBName sysname
Declare @SqlCmd Nvarchar(2000)
Set @DBName = ''
While @DBName Is not NULL
Begin
Select @DBName = Min(Name) From master..sysdatabases Where sid > 1 And Name > @DBName
Set @SqlCmd = 'SELECT ''SELECT name AS [File], filename as [File Name]
, CAST(size/128.0 as DECIMAL(10,2)) AS [Size in MB]
, CAST(FILEPROPERTY(name, ''''SpaceUsed'''')/128.0 as DECIMAL(10,2)) as [Space Used]
, CAST(size/128.0-(FILEPROPERTY(name, ''''SpaceUsed'''')/128.0) AS DECIMAL(10,2)) AS [Available Space] FROM SYSFILES'''
IF @DBName is NULL Break
Exec Master..xp_execresultset @SqlCmd,@DBName
End
It just return "Command(s) completed successfully."