错误时重新运行SQL

时间:2016-07-18 08:12:13

标签: sql powershell error-handling

我正在构建一个PowerShell脚本来清​​理我在计算机上运行的数百个批处理文件执行和计划任务。

我正在清理的其中一个进程是与远程SQL服务器的连接,该服务器将.csv文件下载到网络位置。

它一遍又一遍地工作,然后我收到以下消息

Exception calling "Fill" with "1" argument(s): "ExecuteReader: CommandText
property has not been initialized"
At L:\Operations Database\BatchScriptExecutions\PS\Scripts\0000 - 0100\ControlsBrokerRec.ps1:2426 char:1
+ $SqlAdapter.Fill($DataSet);
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : InvalidOperationException

我想知道如果发生此错误,我可以做些什么来重新运行该过程? PowerShell中是否存在循环错误的方法?

正在运行的代码是以下的多次迭代:

## - Runs Script from Set Location

$SqlCmd = New-Object System.Data.SqlClient.SqlCommand;
$SqlCmd.CommandTimeout=$timeout;
$SqlCMD.CommandText = $CL3CASHPOSITIONSSCRIPTWINS;
$SqlCmd.Connection = $SqlConnection;

## - Extract Data and build sql data object

$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter;
$SqlAdapter.SelectCommand = $SqlCmd;
$DataSet = New-Object System.Data.DataSet;
$SqlAdapter.Fill($DataSet);
$DataSetTable = $DataSet.Tables["Table"];

## - Check for Null Return of Data into table

if ($DataSet.Tables["Table"]) {
  $isnotnull
  $DataSet.Tables["Table"] | Export-Csv $CL3CASHPOSITIONSEXPORTWINS -NoTypeInformation
  echo "Cash Wins"
} else {
  echo "NULL NULL NULL"
}

问题偶然发生,我不确定如何为此测试解决方案。我假设代码中应该有某种catch语句,但我不知所措。

0 个答案:

没有答案