/*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.sid) AS [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),@@SERVICENAME) AS 'Instance'
,CONVERT(VARCHAR(30),GETDATE(),103) AS 'CurrentDateTime'
,USER_NAME() AS 'UserName'
,CONVERT(VARCHAR(30),@@connections) AS 'NumberOfConnections'
,CONVERT(VARCHAR(30),@@language) AS 'Language'
,CONVERT(VARCHAR(30),@@langid) AS 'LanguageId'
,CONVERT(VARCHAR(30),@@LOCK_TIMEOUT) AS 'LockTimeout'
,CONVERT(VARCHAR(30),@@MAX_CONNECTIONS) AS 'MaximumOfConnections'
,CONVERT(VARCHAR(30),@@CPU_BUSY/1000) AS 'CPUBusy'
,CONVERT(VARCHAR(30),@@IDLE/1000) AS 'CPUIdle'
,CONVERT(VARCHAR(30),@@IO_BUSY/1000) AS 'IOBusy'
,CONVERT(VARCHAR(30),@@PACK_RECEIVED) AS 'PacketsReceived'
,CONVERT(VARCHAR(30),@@PACK_SENT) AS 'PacketsSent'
,CONVERT(VARCHAR(30),@@PACKET_ERRORS) AS 'PacketsErrors'
,CONVERT(VARCHAR(30),@@TIMETICKS) AS 'TimeTicks'
,CONVERT(VARCHAR(30),@@TOTAL_ERRORS) AS 'IOErrors'
,CONVERT(VARCHAR(30),@@TOTAL_READ) AS 'TotalRead'
,CONVERT(VARCHAR(30),@@TOTAL_WRITE) AS '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_sid) AS [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),@@SERVICENAME) AS 'Instance'
,CONVERT(VARCHAR(30),GETDATE(),103) AS 'CurrentDateTime'
,USER_NAME() AS 'UserName'
,CONVERT(VARCHAR(30),@@connections) AS 'NumberOfConnections'
,CONVERT(VARCHAR(30),@@language) AS 'Language'
,CONVERT(VARCHAR(30),@@langid) AS 'LanguageId'
,CONVERT(VARCHAR(30),@@LOCK_TIMEOUT) AS 'LockTimeout'
,CONVERT(VARCHAR(30),@@MAX_CONNECTIONS) AS 'MaximumOfConnections'
,CONVERT(VARCHAR(30),@@CPU_BUSY/1000) AS 'CPUBusy'
,CONVERT(VARCHAR(30),@@IDLE/1000) AS 'CPUIdle'
,CONVERT(VARCHAR(30),@@IO_BUSY/1000) AS 'IOBusy'
,CONVERT(VARCHAR(30),@@PACK_RECEIVED) AS 'PacketsReceived'
,CONVERT(VARCHAR(30),@@PACK_SENT) AS 'PacketsSent'
,CONVERT(VARCHAR(30),@@PACKET_ERRORS) AS 'PacketsErrors'
,CONVERT(VARCHAR(30),@@TIMETICKS) AS 'TimeTicks'
,CONVERT(VARCHAR(30),@@TOTAL_ERRORS) AS 'IOErrors'
,CONVERT(VARCHAR(30),@@TOTAL_READ) AS 'TotalRead'
,CONVERT(VARCHAR(30),@@TOTAL_WRITE) AS '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 r ON d.Server = r.Server AND d.DBName = r.DatabaseName
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Search
This Month
Recent Articles
Month Archive
Login
|
Database Properties
Comments
Re: Database Properties
by
Tapena
on Mon 22 Aug 2011 18:54 BST | Profile | Permanent Link
It's all Greek to me. LOL
Trackbacks
TrackBack URL: |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||