我在Powershell中本地运行脚本循环bcp,将数百个excel文件复制到Azure上的数据库(我只是输入网络信息作为bcp的参数)。在每次执行循环时,我还会进行更新表的列的查询。一开始,它工作正常。但大约一分钟后,它会停止运转并最终产生此错误。
47680 rows copied.
Network packet size (bytes): 4096
Clock Time (ms.) Total : 18250 Average : (2612.60 rows per sec.)
Exception calling "ExecuteReader" with "0" argument(s): "Execution Timeout
Expired. The timeout period elapsed prior to completion of the operation or the server is not responding."
我不确定这里发生了什么。以下是查询的暂停时间:
$query = "UPDATE $tableName SET jobID = $dir_id where jobID is NULL;"
$sqlCmd3 = $connection.CreateCommand()
$sqlCmd3.Connection = $connection
$sqlCmd3.CommandText = $query
$sqlCmd3.ExecuteReader() *>$null
答案 0 :(得分:0)
您是否尝试使用" ExecuteNonQuery "而不是你的" ExecuteReader "? 执行阅读器打开一个流,通过调用" EndExecuteReader "来读取您应该关闭的流。此外,您使用更新语句,这是NonQuery语句 - 只需使用ExecuteNonQuery。