PowerShell T-SQL Scripting
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