Script per generar un informe de les bases de dades a SQL Server
Aquest script genera un informe amb la informació de les bases de dades a SQL Server:
SELECT sys.databases.name as 'Nom base de dades', sys.databases.user_access_desc as "Tipus d'accés", sys.databases.state_desc as 'Estat', sys.databases.is_read_only as 'Només lectura', sys.databases.is_auto_shrink_on 'Auto Shrink Activat', sys.databases.is_encrypted as 'Encriptada', bckup.last_backup as 'Darrer Backup de la Base', files.data_file as 'Ruta del fitxer de la base', files.log_file as 'Ruta del fitxer de logs', files.db_size as 'Mida del fitxer de la base MB', files.log_size as 'Mida del fitxer del log MB', sys.databases.database_id as 'ID de la base' FROM sys.databases LEFT JOIN ( SELECT msdb.dbo.backupset.database_name, MAX(msdb.dbo.backupset.backup_finish_date) AS last_backup FROM msdb.dbo.backupmediafamily INNER JOIN msdb.dbo.backupset ON msdb.dbo.backupmediafamily.media_set_id = msdb.dbo.backupset.media_set_id WHERE msdb..backupset.type = 'D' GROUP BY msdb.dbo.backupset.database_name ) bckup on bckup.database_name = sys.databases.name LEFT JOIN ( SELECT mdf.database_id, mdf.name, mdf.physical_name as data_file, ldf.physical_name as log_file, db_size = CAST((mdf.size * 8.0)/1024 AS DECIMAL(8,2)), log_size = CAST((ldf.size * 8.0 / 1024) AS DECIMAL(8,2)) FROM (SELECT * FROM sys.master_files WHERE type_desc = 'ROWS' ) mdf JOIN (SELECT * FROM sys.master_files WHERE type_desc = 'LOG' ) ldf ON mdf.database_id = ldf.database_id ) files ON files.database_id = sys.databases.database_id ORDER BY 'Nom base de dades'
El resultat és semblant a això:
Nom base de dades | Tipus d’accés | Estat | Només lectura | Auto Shrink Activat | Encriptada | Darrer Backup de la Base | Ruta del fitxer de la base | Ruta del fitxer de logs | Mida del fitxer de la base MB | Mida del fitxer del log MB | ID de la base |
master | MULTI_USER | ONLINE | 0 | 0 | 0 | NULL | C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\MSSQL15.MSSQLSERVER\MSSQL\DATA\master.mdf | C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\MSSQL15.MSSQLSERVER\MSSQL\DATA\mastlog.ldf | 5.38 | 2.00 | 1 |
model | MULTI_USER | ONLINE | 0 | 0 | 0 | NULL | C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\MSSQL15.MSSQLSERVER\MSSQL\DATA\model.mdf | C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\MSSQL15.MSSQLSERVER\MSSQL\DATA\modellog.ldf | 8.00 | 8.00 | 3 |
msdb | MULTI_USER | ONLINE | 0 | 0 | 0 | NULL | C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\MSSQL15.MSSQLSERVER\MSSQL\DATA\MSDBData.mdf | C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\MSSQL15.MSSQLSERVER\MSSQL\DATA\MSDBLog.ldf | 16.25 | 5.06 | 4 |
tempdb | MULTI_USER | ONLINE | 0 | 0 | 0 | NULL | C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\MSSQL15.MSSQLSERVER\MSSQL\DATA\tempdb.mdf | C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\MSSQL15.MSSQLSERVER\MSSQL\DATA\templog.ldf | 8.00 | 8.00 | 2 |
tempdb | MULTI_USER | ONLINE | 0 | 0 | 0 | NULL | C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\MSSQL15.MSSQLSERVER\MSSQL\Data\tempdb_mssql_2.ndf | C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\MSSQL15.MSSQLSERVER\MSSQL\DATA\templog.ldf | 8.00 | 8.00 | 2 |