Here is some queries extracted from an Access program to collect stats on SQL data bases
FOR SQL 7:
SQL = "SELECT DB.name AS DBname, DB.crdate as DBCrDate, DB.Status as Status,DB.Status2 as Status2,DB.dbid," & _
"AF. AS DBsize,ISNULL(SUSER_SNAME(DB.sid), '') AS Owner_FullNetworkID " & _
"FROM master.dbo.sysaltfiles AF RIGHT OUTER JOIN master.dbo.sysdatabases DB ON AF.dbid = DB.dbid " & _
"WHERE AF.groupid = 1"
FOR SQL 2000:
SQL = "SELECT DB.name AS DBname, DB.crdate as DBCrDate, DB.Status as Status,DB.Status as Status2,DB.dbid," & _
"AF. AS DBsize,ISNULL(SUSER_SNAME(DB.sid), '') AS Owner_FullNetworkID " & _
"FROM master.dbo.sysaltfiles AF RIGHT OUTER JOIN master.dbo.sysdatabases DB ON AF.dbid = DB.dbid " & _
"WHERE AF.groupid = 1"
For SQL 2005
SQL = "SELECT DB.name AS DBname, DB.status as Status, DB.status2 as Status2, DB.crdate AS DBCrDate,DB.dbid," & _
"AF.size AS DBsize,ISNULL(SUSER_SNAME(DB.sid), '') AS Owner_FullNetworkID " & _
"FROM msdb.sys.sysdatabases AS DB " & _
" LEFT OUTER JOIN " & _
" (SELECT * FROM msdb.sys.sysaltfiles WHERE groupid=1) AS AF " & _
" ON DB.dbid = AF.dbid "
For SQL 2008:
SQL = "SELECT DB.name AS DBname, DB.status as Status, DB.status2 as Status2, DB.crdate AS DBCrDate,DB.dbid," & _
"AF.size AS DBsize,ISNULL(SUSER_SNAME(DB.sid), '') AS Owner_FullNetworkID " & _
"FROM msdb.sys.sysdatabases AS DB " & _
" LEFT OUTER JOIN " & _
" (SELECT * FROM msdb.sys.sysaltfiles WHERE groupid=1) AS AF " & _
" ON DB.dbid = AF.dbid "