Export CSV de tous les fichiers des bases SQL Server
Le module PowerShell SQLPS fournit des commandes permettant en local ou à distance de réaliser des scripts vous évitant de gérer les curseurs du Transact-SQL. L’objet du script que je vais vous présenter est de vous fournir la liste des bases de données ainsi que les noms logiques et les chemins des fichiers associés.
Installer le module PowerShell SQLPS
Il est installable sur toutes les machines Windows à partir de PowerShell Galery.
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force Set-PSRepository -Name PSGallery -InstallationPolicy Trusted Install-Module -Name SqlServer -RequiredVersion 21.1.18256
Le script PowerShell
L’export CSV se fait avec quelques lignes de code Powershell. Elle est exécutée en local sur le serveur. Elle utilise une jointure entre les deux vues du dictionnaire de données master.sys.databases et master.sys.master_files sur le champ database_id, commun aux deux vues.
Import-Module SQLPS $query=' SELECT d.name AS nom_database, f.name AS nom_logique, f.physical_name AS chemin FROM master.sys.databases AS d INNER JOIN master.sys.master_files AS f ON d.database_id=f.database_id ' $user='sa' $pwd='P@$$w0rd' Invoke-Sqlcmd <#-Username $user -Password $pwd#> -Query $query|Export-CSV -Path 'C:\Users\Administrateur.DBA\Desktop\liste.csv' -NoTypeInformation