sqlcmd 设置登录或者查询的超时时间
背景
sqlcmd在执行某些比较慢的查询,会很容易报出time expired的问题,而在ssms就没有该问题。所以需要查询设置查询或登录的超时时间,这样才能查询到完整的数据
命令
sqlcmd -S <dbserveripaddress> -U <dbusername> -P <dbpassword> -t 65534 -l 65534 -r 1 -w 80 -k1 -w 20000 -Y 30 -t 2 -i <sqlscript> >> <sqlscriptexecuteout>
参数说明
-l login_timeout
指定在你尝试连接到服务器时 sqlcmd 登录 ODBC 驱动程序的超时时间(以秒为单位)。
此选项设置 sqlcmd 脚本变量 SQLCMDLOGINTIMEOUT。
登录到 sqlcmd 的默认超时时间为 8 秒。
当使用 -G 选项连接到 SQL 数据库或 SQL 数据仓库并使用 Azure Active Directory 进行身份验证时,建议超时值至少为 30 秒。
登录超时必须是介于 0 和 65534 之间的数字。 如果提供的值不是数值或不在此范围内, sqlcmd 将生成错误消息。
该值为 0 时,则允许无限制等待。
-t query_timeout
指定命令(或 SQL 语句)超时的时间。
此选项设置 sqlcmd 脚本变量 SQLCMDSTATTIMEOUT。
如果未指定 time_out 值,则命令将不会超时。
querytime_out 必须是介于 1 和 65534 之间的数字。 如果提供的值不是数值或不在此范围内, sqlcmd 将生成错误消息。