Как вернуть уровень совместимости только одной базы данных? - PullRequest
0 голосов
/ 04 октября 2018

Я ссылался на эту страницу: https://technet.microsoft.com/en-us/hh213141(v=sql.100)

Import-Module SqlServer

$as = New-Object Microsoft.AnalysisServices.Server  
$as.connect("$Server")  

$as.databases

Write-Host "Compatibility level ="$as.DefaultCompatibilityLevel

, но это возвращает ВСЕ базы данных обратно ...

Я хочу указать только одну базу данных, чтобы получить уровень совместимости ...

Я пробовал это,

$as.databases["$Database"]

БД, в которой я заинтересован, имеет 1103 лвл, но, похоже, не возвращает должный уровень, потому что он возвращает 1200 ...

1 Ответ

0 голосов
/ 04 октября 2018

Я не знаком с этим API, но вижу, что свойство $as.Databases имеет тип DatabaseCollection.Класс DatabaseCollection имеет индексаторы , которые принимают либо Int32, либо String, как вы пытаетесь использовать с $as.databases["$Database"].

Обратите внимание, что документация дляиндексатор String говорит, что параметр является «идентификатором» возвращаемой базы данных.Также обратите внимание, что класс Database имеет отдельные свойства для ID и Name, поэтому между ними есть различие.Итак, я предлагаю, убедитесь, что вы передаете идентификатор, а не имя, когда вы пытаетесь получить экземпляр Database таким способом.

В качестве альтернативы, если вы хотите выполнить поиск по имени, вы можете использоватьметод FindByName ...

$as.Databases.FindByName($Database)

... или GetByName метод ...

$as.Databases.GetByName($Database)

.... с той разницей, что первая возвращает $null, если такой базы данных не существует, а вторая выдает исключение.

Если ничего не помогает, вы можете получить нужную базу данных следующим образом ...

$as.Databases | Where-Object { $_.ID -eq $Database }

... или как это ...

$as.Databases | Where-Object { $_.Name -eq $Database }

... в зависимости от того, какое свойство соответствует значению в $Database.

Наконец, в вашем кодевы пытаетесь получить доступ к свойству DefaultCompatibilityLevel, которое я не вижу определенным в Database классе .Однако существует свойство CompatibilityLevel .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...