La récupération de données à l'aide de select instruction SQL dans Powershell
Mon objectif est d'affecter la valeur des résultats retournés à une variable:
$SqlConnection = New-Object System.Data.SqlClient.SqlConnection
$SqlConnection.ConnectionString = "Server=HOME\SQLEXPRESS;Database=master;Integrated Security=True"
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand
$SqlCmd.CommandText = "select name from sysdatabases where name = 'tempdb'"
$SqlCmd.Connection = $SqlConnection
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
$SqlAdapter.SelectCommand = $SqlCmd
$DataSet = New-Object System.Data.DataSet
$SqlAdapter.Fill($DataSet)
$SqlConnection.Close()
$DataSet.Tables[0]
La valeur renvoyée doit évidemment être "tempdb", alors comment puis-je assigner à une variable de manière à ce travail:
Write-output "Database is " $variablename
De sortie souhaité: Base de données tempdb
OriginalL'auteur fenster | 2009-11-18
Vous devez vous connecter pour publier un commentaire.
OriginalL'auteur Gordon Bell
Si vous utilisez SQL Server 2008, vous devriez envisager d'utiliser les applets de commande qui sont disponibles pour PowerShell comme
Invoke-SqlCmd
qui peut être utilisé pour exécuter des requêtes sur une base de données SQL Server. Je les ai utilisées sur un projet visant à automatiser le processus d'application de correctifs à une base de données et l'enregistrement de ce que les correctifs ont été appliqués:Vous devrez d'abord utiliser ces deux commandes pour faire du SQL Server applets de commande à la disposition de votre session.
Une fois qu'ils sont disponibles, vous pouvez invoquer des commandes SQL comme suit.
La variable
$x
contiendra les résultats de l'exécution de la requête.Découvrez http://msdn.microsoft.com/en-us/library/cc281720.aspx pour plus de détails sur l'utilisation de SQL Server applets de commande
OriginalL'auteur