Назад | Перейти на главную страницу

Команда Powershell для подтверждения допустимости объекта SQL Server Smo.Server

У меня был следующий код в сценарии 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 минут исследования я понял, что забыл указать имя компьютера при создании объекта $ server.

Код должен был быть:

$sql_instance = "MYSERVER\SQLEXPRESS"

У меня вопрос: как я могу убедиться, что созданный объект сервера действительно представляет действительный экземпляр SQL Server?

Я представляю себе что-то вроде: If $server.IsNotValid -eq "True" Then Throw Exception

$server.ConnectionContext.Connect()

приведет к ошибке, если вы не сможете подключиться к серверу.

Насколько я знаю, вы не можете проверить соединение с SQL-сервером, пока не попытаетесь получить свойство (или явно не установите соединение с сервером). $conn = new-object Microsoft.SqlServer.Management.Common.ServerConnection

Я не могу проверить это прямо сейчас, но я считаю, что вы получите сообщение об ошибке, если вызов соединения не удастся. Если нет, вы должны, если попытаетесь получить какое-либо свойство.