/*DatabaseProperties*/
SET NOCOUNT ON

DECLARE 
@Counter INT

IF 
EXISTS (SELECT FROM tempdb..sysobjects WHERE id OBJECT_ID(N'[tempdb]..[#temp]')) DROP TABLE #temp
CREATE TABLE #Temp (ID INT IDENTITY (1,1), DatabaseName VARCHAR (250))
IF EXISTS (SELECT FROM tempdb..sysobjects WHERE id OBJECT_ID(N'[tempdb]..[#database]')) DROP TABLE #database
CREATE TABLE #database (Server VARCHAR (50)
,
DBName VARCHAR (150)
,
Owner VARCHAR (150)
,
crdate VARCHAR (150)
,
LicenseType VARCHAR (150)
,
cmptlevel VARCHAR (150)
,
Collation VARCHAR (150)
,
UserAccess VARCHAR (150)
,
Status VARCHAR (150)
,
Recovery VARCHAR (150)
,
Instance VARCHAR (150)
,
CurrentDateTime VARCHAR (150)
,
UserName VARCHAR (150)
,
NumberOfConnections VARCHAR (150)
,
Language VARCHAR (150)
,
LanguageId VARCHAR (150)
,
LockTimeout VARCHAR (150)
,
MaximumOfConnections VARCHAR (150)
,
CPUBusy VARCHAR (150)
,
CPUIdle VARCHAR (150)
,
IOBusy VARCHAR (150)
,
PacketsReceived VARCHAR (150)
,
PacketsSent VARCHAR (150)
,
PacketsErrors VARCHAR (150)
,
TimeTicks VARCHAR (150)
,
IOErrors VARCHAR (150)
,
TotalRead VARCHAR (150)
,
TotalWrite VARCHAR (150)
  )

IF SUBSTRING(@@version,23,4)='2000' BEGIN

SET 
@Counter 0
 
INSERT INTO #Temp
 
SELECT [name] AS DatabaseName 
 
FROM master.dbo.sysdatabases
                
WHERE [name] NOT IN ('AdventureWorks''Pubs''Northwind')

 
WHILE @Counter <= (SELECT COUNT(*) FROM #Temp)
 
BEGIN
  SET 
@DatabaseName (SELECT DatabaseName 
       
FROM #Temp 
       
WHERE ID @Counter)

  
INSERT INTO #database
  
SELECT @Servername AS 'Server'
  
,d.name AS 'DBName'
  
SUSER_SNAME(d.sidAS [Owner] 
  
,d.crdate
  
,CONVERT(VARCHAR(150),SERVERPROPERTY('LicenseType')) AS LicenseType
  
,d.cmptlevel
  
,s.DEFAULT_CHARACTER_SET_NAME AS [Collation]
  
,(SELECT CONVERT(sysname,DATABASEPROPERTYEX(@DatabaseName,'UserAccess'))) AS  [UserAccess]
  
,(SELECT CONVERT(sysname,DATABASEPROPERTYEX(@DatabaseName,'Status'))) AS [Status]
  
,(SELECT CONVERT(sysname,DATABASEPROPERTYEX(@DatabaseName,'Recovery'))) AS Recovery
  
,CONVERT(VARCHAR(30),@@SERVICENAMEAS 'Instance'
  
,CONVERT(VARCHAR(30),GETDATE(),103AS 'CurrentDateTime'
  
,USER_NAME() AS 'UserName'
  
,CONVERT(VARCHAR(30),@@connectionsAS 'NumberOfConnections'
  
,CONVERT(VARCHAR(30),@@languageAS 'Language'
  
,CONVERT(VARCHAR(30),@@langidAS 'LanguageId'        
  
,CONVERT(VARCHAR(30),@@LOCK_TIMEOUTAS 'LockTimeout'
  
,CONVERT(VARCHAR(30),@@MAX_CONNECTIONSAS 'MaximumOfConnections'   
  
,CONVERT(VARCHAR(30),@@CPU_BUSY/1000AS 'CPUBusy'       
  
,CONVERT(VARCHAR(30),@@IDLE/1000AS 'CPUIdle' 
  
,CONVERT(VARCHAR(30),@@IO_BUSY/1000AS 'IOBusy'
  
,CONVERT(VARCHAR(30),@@PACK_RECEIVEDAS 'PacketsReceived'
  
,CONVERT(VARCHAR(30),@@PACK_SENTAS 'PacketsSent'
  
,CONVERT(VARCHAR(30),@@PACKET_ERRORSAS 'PacketsErrors'
  
,CONVERT(VARCHAR(30),@@TIMETICKSAS 'TimeTicks' 
  
,CONVERT(VARCHAR(30),@@TOTAL_ERRORSAS 'IOErrors'
  
,CONVERT(VARCHAR(30),@@TOTAL_READAS 'TotalRead'
  
,CONVERT(VARCHAR(30),@@TOTAL_WRITEAS 'TotalWrite'
  
FROM master.dbo.sysdatabases d 
  
INNER JOIN INFORMATION_SCHEMA.SCHEMATA s
  
ON  d.name =s.CATALOG_NAME
  
WHERE d.name =@DatabaseName
  
COLLATE DATABASE_DEFAULT 
  
  
SET @Counter @Counter 1
 
END
END 
ELSE
BEGIN

 INSERT INTO 
#Temp
 
SELECT [name] AS DatabaseName  
 
FROM master.sys.sysdatabases
                
WHERE [name] NOT IN ('AdventureWorks''Pubs''Northwind')

 
SET @Counter 0
 
WHILE @Counter <=  (SELECT COUNT(*) FROM #Temp)
 
BEGIN
  SET 
@DatabaseName (SELECT DatabaseName 
       
FROM #Temp 
       
WHERE ID @Counter)

  
INSERT INTO #database
  
SELECT @@Servername AS 'Server'
  
,[name] AS DBName
  
SUSER_SNAME(d.owner_sidAS [Owner] 
  
,d.create_date AS [crdate]
  
,CONVERT(VARCHAR(150),SERVERPROPERTY('LicenseType')) AS LicenseType
  
,d.compatibility_level AS [cmptlevel] 
  
,d.collation_name AS [Collation]
  
,d.user_access_desc AS [UserAccess]
  
,d.state_desc AS [Status]
   
,d.recovery_model_desc AS [Recovery]
  
,CONVERT(VARCHAR(50),@@SERVICENAMEAS 'Instance'
  
,CONVERT(VARCHAR(30),GETDATE(),103AS 'CurrentDateTime'
  
,USER_NAME() AS 'UserName'
  
,CONVERT(VARCHAR(30),@@connectionsAS 'NumberOfConnections'
  
,CONVERT(VARCHAR(30),@@languageAS 'Language'
  
,CONVERT(VARCHAR(30),@@langidAS 'LanguageId'        
  
,CONVERT(VARCHAR(30),@@LOCK_TIMEOUTAS 'LockTimeout'
  
,CONVERT(VARCHAR(30),@@MAX_CONNECTIONSAS 'MaximumOfConnections'   
  
,CONVERT(VARCHAR(30),@@CPU_BUSY/1000AS 'CPUBusy'       
  
,CONVERT(VARCHAR(30),@@IDLE/1000AS 'CPUIdle' 
  
,CONVERT(VARCHAR(30),@@IO_BUSY/1000AS 'IOBusy'
  
,CONVERT(VARCHAR(30),@@PACK_RECEIVEDAS 'PacketsReceived'
  
,CONVERT(VARCHAR(30),@@PACK_SENTAS 'PacketsSent'
  
,CONVERT(VARCHAR(30),@@PACKET_ERRORSAS 'PacketsErrors'
  
,CONVERT(VARCHAR(30),@@TIMETICKSAS 'TimeTicks' 
  
,CONVERT(VARCHAR(30),@@TOTAL_ERRORSAS 'IOErrors'
  
,CONVERT(VARCHAR(30),@@TOTAL_READAS 'TotalRead'
  
,CONVERT(VARCHAR(30),@@TOTAL_WRITEAS 'TotalWrite'
  
FROM sys.databases d 
  
WHERE name =@DatabaseName COLLATE DATABASE_DEFAULT 

  
SET @Counter @Counter 1
 
END
END

IF 
EXISTS (SELECT FROM tempdb..sysobjects WHERE id OBJECT_ID(N'[tempdb]..[#Results]')) DROP TABLE #Results
  CREATE TABLE #Results (SERVER VARCHAR(200), DatabaseName VARCHAR(200), NAME VARCHAR(200), filename VARCHAR(300))
EXEC sp_MSForEachDB  'INSERT INTO #Results(Server, DatabaseName, Name, filename) 
SELECT CONVERT(char(100), SERVERPROPERTY(''Servername'')) AS Server,
''?'' as DatabaseName,
[?]..sysfiles.name, 
[?]..sysfiles.filename
From [?]..sysfiles'
SELECT  d.Server  ,d.DBName  ,d.Owner  ,d.crdate  ,d.LicenseType ,d.cmptlevel  ,d.Collation  ,d.UserAccess  ,d.Status  ,d.Recovery  ,d.Instance  ,d.CurrentDateTime  ,d.UserName  ,d.NumberOfConnections  ,d.Language  ,d.LanguageId  ,d.LockTimeout ,d.MaximumOfConnections ,d.CPUBusy  ,d.CPUIdle  ,d.IOBusy  ,d.PacketsReceived  ,d.PacketsSent  ,d.PacketsErrors  ,d.TimeTicks  ,d.IOErrors  ,d.TotalRead  ,d.TotalWrite  ,r.Name AS FileName ,r.FileName AS FullPath  FROM #database d INNER JOIN #Results ON  d.Server r.Server AND d.DBName r.DatabaseName