Article written in the Dutch language…
Met onderstaande commando’s kun je d.m.v. T-SQL gegevens opvragen uit een MSSQL database m.b.v. SQL PowerShell Modules of SQLPS.
$sResult = Invoke-Sqlcmd -Query "SELECT @@SERVERNAME AS Servername;" `
-QueryTimeout 3 `
-ServerInstance [SERVERNAME][INSTANCE] `
-Database master
Vervolgens vraag je de inhoud van bovenstaande voorbeeld d.m.v. variable $sResult.Servername. Bij een een resultaat van meer dan een record worden de values opgeslagen in een array. In dat geval geeft de variabele $sResult.count het aantal geretourneerde regels terug (-gt 1). Je kunt dan bijvoorbeeld de eerste regel van het resultaat opvragen d.m.v. $sResult[0].columnname. Je kunt m.b.v. onderstaande statement afvangen of het resultaat uit meer dan twee regels bestaat.
if ($sResult.count -gt 1) {
# TestVoorbeeld afhandelen Array...
write-host "Er zitten " $sResult.count " values in de array..."
foreach ($oResultItem in $sResult) {
$oResultItem.Servername
}
} else {
# Afhandelen string value...
$sResult.Servername
}
Ook is het mogelijk vanuit een specifieke context gegevens op te vragen.
cd SQLSERVER:SQL{servername}{instancename}Databasesmsdb
Invoke-Sqlcmd -Query "SELECT * FROM sysjobs;" -QueryTimeout 3