我有一个连接到 SQL Server 2012 数据库的 powershell 脚本,该脚本运行 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."
我尝试将 SqlConnection 字符串的超时时间从最初设置的 360 逐渐增加到现在的 800,但仍然遇到同样的问题。有人深入了解这里到底是什么问题吗?我怎样才能克服它?
先感谢您。
正如 OP 所提到的 - 默认命令执行超时为 30 秒。我在下面找到了:
SqlDataAdapter 类
这将允许您增加命令执行超时(插入、更新、删除、选择命令)。所以在我的例子中,下面的技巧做到了:
$adapter.SelectCommand.CommandTimeout=60
希望这可以帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)