Powershell SQL Server数据库连接和连接超时问题

时间:2017-11-02 10:56:28

标签: sql-server powershell sql-server-2012 powershell-v4.0

我有一个powershell脚本连接到SQL server 2012数据库,运行SQL查询和结果集到数据表中,以便将格式化的电子邮件发送给相关方。以下是问题代码段:

$CBA = New-Object System.Data.DataSet "CBAData"
$sqlConn = New-Object System.Data.SqlClient.SqlConnection("Data Source=DataSource;Initial Catalog=DataCatalog;Integrated Security = False;Connection Timeout=800;User ID = user; Password =pwd;")
$adapter = New-Object System.Data.SqlClient.SqlDataAdapter($CBAData, $sqlConn)
$adapter.Fill($CBA)

我在运行脚本时遇到错误:

Exception calling "Fill" with "1" argument(s): "Execution Timeout Expired. The timeout period elapsed prior to completion of the operation or the server is not responding."

我已经尝试从最初设置的360逐渐增加SqlConnection字符串中的超时,现在高达800,但仍然有相同的问题。有没有人能够深入了解这里究竟是什么问题?我怎么能过度呢?

提前谢谢。

2 个答案:

答案 0 :(得分:4)

如OP所述 - 默认命令执行超时为30秒。我在下面找到了:

  

SqlDataAdapter类

允许您增加命令执行超时(插入,更新,删除,选择命令)。所以在我的情况下,下面做了诀窍:

  

$ adapter.SelectCommand.CommandTimeout = 60

希望这有帮助。

答案 1 :(得分:1)

除了 Zulfiqar 的回答,这使我朝着正确的方向前进。对我来说,解决方案是在 SqlCommand 中。我在设置适配器属性时遇到的错误如下:

<块引用>

在此对象上找不到属性“CommandTimeout”。验证该属性是否存在并且可以设置。

payable