<p>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 :</p>
<pre><code class="lang-auto">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
}
</code></pre>
<p>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.</p>
<p>Je l’utilise et le partage suffisamment souvent pour l’avoir transforme en module de script sur <a href="https://github.com/ChrisMagnuson/InvokeSQL">GitHub</a> afin que vous puissiez maintenant aller dans votre repertoire de modules et executer <code>git clone https://github.com/ChrisMagnuson/InvokeSQL</code> et a partir de ce moment, invoke-sql sera automatiquement charge lorsque vous l’utiliserez (a condition d’utiliser PowerShell v3 ou ulterieur).</p>