我正在使用SMO编写PowerShell脚本来执行一些SQL Server编程。我的脚本的简化版本如下所示。
pip install oauth2client==1.5.2
我的脚本现在总是超时,我在网上搜索,发现我应该在我的代码中的某处设置CommandTimeout
property。
但是,# Load SMO assembly, and if we're running SQL Server 2008 DLLs load the SMOExtended and SQLWMIManagement libraries
$v = [System.Reflection.Assembly]::LoadWithPartialName( "Microsoft.SqlServer.SMO");
if ((($v.FullName.Split(','))[1].Split('='))[1].Split('.')[0] -ne '9') {
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SMOExtended") | out-null;
}
[System.Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.SmoEnum') | out-null;
$server = New-Object ("Microsoft.SqlServer.Management.Smo.Server") ".\sql2014";
$server.Databases["master"].ExecuteWithResults("select * from sys.database_files");
属性适用于CommandTimeout
。我使用SMO执行查询的方式没有SqlCommand
对象。如您所见,我可以直接在SqlCommand
上执行。
任何人都可以帮忙指出我应该在哪里设置$server.Databases["master"]
属性吗?
答案 0 :(得分:2)
$server.ConnectionContext.StatementTimeout
应该为你完成工作。根据{{3}}这个:
获取或设置在失败并超时之前运行语句的秒数。