Exception calling "ExecuteNonQuery" with "0" argument(s): "The transaction count is not 0

问题描述 投票:0回答:0

我正在尝试运行一个执行数据库维护存储过程的 Azure Runbook。但是,

$command.ExecuteNonQuery()
给我错误 Exception calling "ExecuteNonQuery" with "0" argument(s): "The transaction count is not 0 in the following PowerShell script:

$credential = Get-AutomationPSCredential -Name 'Credential'

$userName = $credential.UserName

$password = $credential.GetNetworkCredential().Password

$connectionString = "Data Source=server.database.windows.net;Initial Catalog=database;Integrated Security=False;User ID=$userName;Password=$password"

$connection = New-Object System.Data.SqlClient.SqlConnection($connectionString)

$connection.Open()

$transaction = $connection.BeginTransaction()

try {
    $command = New-Object System.Data.SqlClient.SqlCommand

    $command.Connection = $connection

    $command.Transaction = $transaction
    
    $command.CommandType = [System.Data.CommandType]::StoredProcedure
    
    $command.CommandText = "dbo.IndexOptimize"
    
    $command.Parameters.AddWithValue("@Databases", "USER_DATABASES")
    
    $command.Parameters.AddWithValue("@MinNumberOfPages", "500")
    
    $command.Parameters.AddWithValue("@FragmentationMedium", "INDEX_REORGANIZE,INDEX_REBUILD_ONLINE,INDEX_REBUILD_OFFLINE")
    
    $command.Parameters.AddWithValue("@FragmentationHigh", "INDEX_REBUILD_ONLINE,INDEX_REBUILD_OFFLINE")
    
    $command.Parameters.AddWithValue("@FragmentationLevel1", "5")
    
    $command.Parameters.AddWithValue("@FragmentationLevel2", "30")
    
    $command.Parameters.AddWithValue("@UpdateStatistics", "COLUMNS")
    
    $command.Parameters.AddWithValue("@LogToTable", "Y")
    
    $command.ExecuteNonQuery()
    
    $transaction.Commit()
}
catch {
    try {       
        $transaction.Rollback()
    }       
    catch {
        # Microsoft recommends to catch and log and/or ignore rollback exceptions
    }
    throw
}
finally {
    $command.Dispose()
    
    $transaction.Dispose()
    
    $connection.Close()
}
sql-server transactions azure-powershell azure-runbook
© www.soinside.com 2019 - 2024. All rights reserved.