Export CSV de tous les fichiers des bases SQL Server

Export CSV de tous les fichiers des bases SQL ServerLe 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

MSSQL /