Maison >base de données >tutoriel mysql >Comment puis-je exécuter des requêtes SQL directement depuis PowerShell ?
Exécuter des requêtes SQL à partir de PowerShell sur votre ordinateur local
PowerShell offre la possibilité d'exécuter des requêtes SQL arbitraires sur une instance de SQL Server. Cela peut être fait avec uniquement .NET et PowerShell. Voici une fonction qui simplifie le processus :
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 }
Cette fonction vous demande de spécifier la source de données (généralement le nom de votre machine ou .SQLEXPRESS), le nom de la base de données et la commande SQL que vous souhaitez exécuter.
Une fois cette fonction définie, vous pouvez exécuter des requêtes arbitraires depuis PowerShell en appelant Invoke-SQL avec les paramètres appropriés. Par exemple, la commande suivante exécutera la requête "SELECT * FROM Customers" sur la base de données "MyDatabase" sur l'instance SQL Server locale :
Invoke-SQL -database "MyDatabase" -sqlCommand "SELECT * FROM Customers"
Cela renverra un ensemble de données contenant les résultats de la requête, avec lequel vous pouvez ensuite travailler dans PowerShell.
Cette fonction a été encore améliorée dans un module PowerShell disponible sur GitHub : https://github.com/ChrisMagnuson/InvokeSQL. En installant ce module, vous pouvez charger automatiquement la fonction Invoke-SQL dans votre environnement PowerShell et l'utiliser de manière transparente sans avoir à la définir manuellement.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!