我在PowerShell脚本中有以下代码:
$sql_instance = "SQLEXPRESS" [System.Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.SMO') $server = New-Object ('Microsoft.SqlServer.Management.Smo.Server') $sql_instance Write-Host $server.InstanceName
没有任何回报。 经过大约20分钟的研究,我意识到我在创build$ server对象时忘记了包含计算机名称。
代码应该是:
$sql_instance = "MYSERVER\SQLEXPRESS"
我的问题是:如何validation创build的服务器对象是否实际上代表有效的SQL Server实例?
我想像这样: If $server.IsNotValid -eq "True" Then Throw Exception
$server.ConnectionContext.Connect()
如果您无法连接到服务器将会出错。
据我所知,你不能testing连接到SQL服务器,直到你尝试检索一个属性(或明确地build立一个与服务器连接的连接) $conn = new-object Microsoft.SqlServer.Management.Common.ServerConnection
我现在无法testing它,但是我相信如果连接调用失败,将会出现错误。 如果没有,你应该如果你尝试找回任何财产。