Skip to content

Commit 11d67a0

Browse files
Use Invoke-DbaQuery instead of ExecuteNonQuery for long batches to avoid issues on AppVeyor (#10149)
1 parent 86e9a0f commit 11d67a0

4 files changed

Lines changed: 23 additions & 22 deletions

File tree

public/Get-DbaUserPermission.ps1

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -254,12 +254,13 @@ function Get-DbaUserPermission {
254254

255255
try {
256256
Write-Message -Level Verbose -Message "Removing STIG schema if it still exists from previous run"
257-
$tempdb.ExecuteNonQuery($removeStigSQL)
257+
# We use Invoke-DbaQuery (here and later in the code) because using ExecuteNonQuery with long batches causes problems on AppVeyor.
258+
$null = Invoke-DbaQuery -SqlInstance $server -Database tempdb -Query $removeStigSQL -EnableException
258259
Write-Message -Level Verbose -Message "Creating STIG schema customized for master database"
259260
$createStigSQL = $sql.Replace("<TARGETDB>", 'master')
260-
$tempdb.ExecuteNonQuery($createStigSQL)
261+
$null = Invoke-DbaQuery -SqlInstance $server -Database tempdb -Query $createStigSQL -EnableException
261262
Write-Message -Level Verbose -Message "Building data table for server objects"
262-
$serverDT = $tempdb.Query($serverSQL)
263+
$serverDT = Invoke-DbaQuery -SqlInstance $server -Database tempdb -Query $serverSQL -EnableException
263264
foreach ($row in $serverDT) {
264265
[PSCustomObject]@{
265266
ComputerName = $server.ComputerName
@@ -294,13 +295,13 @@ function Get-DbaUserPermission {
294295

295296
try {
296297
Write-Message -Level Verbose -Message "Removing STIG schema if it still exists from previous run"
297-
$tempdb.ExecuteNonQuery($removeStigSQL)
298+
$null = Invoke-DbaQuery -SqlInstance $server -Database tempdb -Query $removeStigSQL -EnableException
298299
Write-Message -Level Verbose -Message "Creating STIG schema customized for current database"
299300
$createStigSQL = $sql.Replace("<TARGETDB>", $db.Name)
300301
Write-Message -Level Verbose -Message "Length of createStigSQL: $($createStigSQL.Length)"
301-
$tempdb.ExecuteNonQuery($createStigSQL)
302+
$null = Invoke-DbaQuery -SqlInstance $server -Database tempdb -Query $createStigSQL -EnableException
302303
Write-Message -Level Verbose -Message "Building data table for database objects"
303-
$dbDT = $db.Query($dbSQL)
304+
$dbDT = Invoke-DbaQuery -SqlInstance $server -Database $db.Name -Query $dbSQL -EnableException
304305
foreach ($row in $dbDT) {
305306
[PSCustomObject]@{
306307
ComputerName = $server.ComputerName
@@ -326,8 +327,12 @@ function Get-DbaUserPermission {
326327
}
327328
}
328329

329-
Write-Message -Level Verbose -Message "Removing STIG schema from tempdb"
330-
$tempdb.ExecuteNonQuery($removeStigSQL)
330+
try {
331+
Write-Message -Level Verbose -Message "Removing STIG schema from tempdb"
332+
$null = Invoke-DbaQuery -SqlInstance $server -Database tempdb -Query $removeStigSQL -EnableException
333+
} catch {
334+
Stop-Function -Message "Failed to remove STIG schema from tempdb on $instance" -ErrorRecord $_ -Target $instance -Continue
335+
}
331336
}
332337
}
333338
}

public/Install-DbaDarlingData.ps1

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -232,9 +232,8 @@ function Install-DbaDarlingData {
232232
}
233233
if ($Pscmdlet.ShouldProcess($instance, "installing/updating $scriptName in $database")) {
234234
try {
235-
foreach ($query in ($sql -Split "\nGO\b")) {
236-
$null = $db.Query($query)
237-
}
235+
# We use Invoke-DbaQuery because using ExecuteNonQuery with long batches causes problems on AppVeyor.
236+
$null = Invoke-DbaQuery -SqlInstance $server -Database $Database -Query $sql -EnableException
238237
} catch {
239238
Write-Message -Level Warning -Message "Could not execute at least one portion of $scriptName in $Database on $instance." -ErrorRecord $_
240239
$scriptError = $true

public/Install-DbaMaintenanceSolution.ps1

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -544,9 +544,8 @@ function Install-DbaMaintenanceSolution {
544544
Write-ProgressHelper -ExcludePercent -Message "Installing $shortFileName"
545545
$sql = $fileContents[$file]
546546
try {
547-
foreach ($query in ($sql -Split "\nGO\b")) {
548-
$null = $db.Invoke($query)
549-
}
547+
# We use Invoke-DbaQuery because using ExecuteNonQuery with long batches causes problems on AppVeyor.
548+
$null = Invoke-DbaQuery -SqlInstance $server -Database $Database -Query $sql -EnableException
550549
} catch {
551550
$result = "Failed"
552551
Stop-Function -Message "Could not execute $shortFileName in $Database on $instance" -ErrorRecord $_ -Target $db -Continue
@@ -807,7 +806,7 @@ function Install-DbaMaintenanceSolution {
807806
}
808807
}
809808

810-
if ($query) {
809+
if ($sql) {
811810
# then whatif wasn't passed
812811
[PSCustomObject]@{
813812
ComputerName = $server.ComputerName

public/Install-DbaWhoIsActive.ps1

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,6 @@ function Install-DbaWhoIsActive {
143143

144144
$sql = [IO.File]::ReadAllText($sqlfile)
145145
$sql = $sql -replace 'USE master', ''
146-
$batches = $sql -split "GO\r\n"
147146

148147
$matchString = 'Who Is Active? v'
149148

@@ -187,12 +186,11 @@ function Install-DbaWhoIsActive {
187186

188187
if ($server.Databases[$Database]) {
189188
$ProcedureExists = ($server.Query($ProcedureExists_Query, $Database)).proc_count
190-
foreach ($batch in $batches) {
191-
try {
192-
$null = $server.databases[$Database].ExecuteNonQuery($batch)
193-
} catch {
194-
Stop-Function -Message "Failed to install stored procedure." -ErrorRecord $_ -Continue -Target $instance
195-
}
189+
try {
190+
# We use Invoke-DbaQuery because using ExecuteNonQuery with long batches causes problems on AppVeyor.
191+
$null = Invoke-DbaQuery -SqlInstance $server -Database $Database -Query $sql -EnableException
192+
} catch {
193+
Stop-Function -Message "Failed to install stored procedure." -ErrorRecord $_ -Continue -Target $instance
196194
}
197195

198196
if ($ProcedureExists -gt 0) {

0 commit comments

Comments
 (0)