J'ai des bases de données hors ligne sur un serveur SQL. Je voudrais savoir quels fichiers sur disque sont liés à ces bases de données. Est-il possible de récupérer la liste des bases de données hors ligne sans les mettre en ligne?Récupérer la liste de fichiers d'une base de données de serveur SQL hors ligne
15
A
Répondre
30
Cela vous donnera une liste de tous les chemins de fichiers physiques liés à toutes les bases de données hors ligne, avec le nom de la base de données et le type de fichier:
SELECT
'DB_NAME' = db.name,
'FILE_NAME' = mf.name,
'FILE_TYPE' = mf.type_desc,
'FILE_PATH' = mf.physical_name
FROM
sys.databases db
INNER JOIN sys.master_files mf
ON db.database_id = mf.database_id
WHERE
db.state = 6 -- OFFLINE
0
Liste tous les disponibles, mais hors-ligne Fichiers de base de données SQL Server
L'instruction suivante répertorie tous les fichiers associés avec des bases de données hors ligne du serveur SQL
SELECT
m.physical_name + '\' + m.name AS [file_path]
FROM
sys.databases AS d
INNER JOIN sys.master_files AS m ON d.database_id = m.database_id
WHERE
d.state_desc = 'OFFLINE'
--AND m.type_desc = 'ROWS'
GROUP BY
m.physical_name + '\' + m.name
Note: Décommentez la ligne AND m.type_desc = 'ROWS'
(supprimer le -) pour filtrer la liste plus pour inclure des fichiers de base de données uniquement. Sinon, les fichiers journaux seront également répertoriés.
La clause GROUP BY
est là pour empêcher que les entrées n'apparaissent plus d'une fois.