Я искал вокруг и обнаружил, что есть способ получить уровень совместимости базы данных в powershell с помощью чего-то вроде:
Import-Module SqlServer
$SqlConnection = New-Object System.Data.SqlClient.SqlConnection
$SqlConnection.ConnectionString = "Server=$Server;Initial Catalog=$DB;Integrated Security=SSPI"
$conn = new-object Microsoft.SqlServer.Management.Common.ServerConnection($sqlConnection)
$srv = new-object Microsoft.SqlServer.Management.Smo.Server($conn)
$db = New-Object Microsoft.SqlServer.Management.Smo.Database
$db = $srv.Databases.Item("$DB")
$comp_lvl = New-Object Microsoft.SqlServer.Management.Smo.CompatibilityLevel
$comp_lvl = $db.CompatiblityLevel
Write-Host "Compatibility level =" $db.CompatibilityLevel
Однако я получаю ошибки, пытаясь получить уровень совместимости базы данных, которая являетсяна сервере анализа
Исключение при получении "Item": "Не удалось подключиться к серверу ..."
Я понял, что это, вероятно, работает для обычного механизма базы данных,но что-то еще может быть использовано для сервера анализа.Я посмотрел на MS Docs и не нашел ничего полезного.
ТАК это вообще возможно?
ОБНОВЛЕНИЕ:
Мне удалось найти что-то на этой странице: 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 ...