Comment executer une requete SQL Server depuis PowerShell ?
Source : Stack Overflow [powershell]
Pour ceux qui ont besoin de faire cela avec uniquement .NET standard et PowerShell (sans outils SQL supplementaires installes), voici la fonction que j’utilise :
function Invoke-SQL {
param(
[string] $dataSource = ".\SQLEXPRESS",
[string] $database = "MasterData",
[string] $sqlCommand = $(throw "Please specify a query.")
)
$connectionString = "Data Source=$dataSource; " +
"Integrated Security=SSPI; " +
"Initial Catalog=$database"
$connection = new-object system.data.SqlClient.SQLConnection($connectionString)
$command = new-object system.data.sqlclient.sqlcommand($sqlCommand,$connection)
$connection.Open()
$adapter = New-Object System.Data.sqlclient.sqlDataAdapter $command
$dataset = New-Object System.Data.DataSet
$adapter.Fill($dataSet) | Out-Null
$connection.Close()
$dataSet.Tables
}
J’utilise cela depuis si longtemps que je ne sais plus qui a ecrit quelles parties. Cela a ete extrait d’exemples d’autres personnes, mais simplifie pour etre clair et contenir uniquement ce qui est necessaire sans dependances ni fonctionnalites supplementaires.
Je l’utilise et le partage suffisamment souvent pour l’avoir transforme en module de script sur GitHub afin que vous puissiez maintenant aller dans votre repertoire de modules et executer git clone https://github.com/ChrisMagnuson/InvokeSQL et a partir de ce moment, invoke-sql sera automatiquement charge lorsque vous l’utiliserez (a condition d’utiliser PowerShell v3 ou ulterieur).