如何从分析服务器获取数据库的兼容级别?
How to get the compatibility level of a database from analysis server?
我四处搜索,发现有一种方法可以通过以下方式在 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
但是,我在尝试获取分析服务器上的数据库的兼容性级别时遇到错误
Exception getting "Item": "Failed to connect to server ..."
我意识到它可能适用于常规数据库引擎,但其他东西可能用于分析服务器。我环顾了 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
但是这 return 所有数据库都回来了...
我只想指定一个数据库以获得兼容级别...
我试过了,
$as.databases["$Database"]
但似乎 return 不是正确的级别,因为我传递的数据库的级别是 1103,而不是 1200...
我想通了!
Import-Module SqlServer
$as = New-Object Microsoft.AnalysisServices.Server
$as.connect("$Server")
$c = $as.Databases | Where-Object { $_.ID -eq $Database }
Write-Host "Compatibility level =" $c.CompatibilityLevel
我四处搜索,发现有一种方法可以通过以下方式在 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
但是,我在尝试获取分析服务器上的数据库的兼容性级别时遇到错误
Exception getting "Item": "Failed to connect to server ..."
我意识到它可能适用于常规数据库引擎,但其他东西可能用于分析服务器。我环顾了 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
但是这 return 所有数据库都回来了...
我只想指定一个数据库以获得兼容级别...
我试过了,
$as.databases["$Database"]
但似乎 return 不是正确的级别,因为我传递的数据库的级别是 1103,而不是 1200...
我想通了!
Import-Module SqlServer
$as = New-Object Microsoft.AnalysisServices.Server
$as.connect("$Server")
$c = $as.Databases | Where-Object { $_.ID -eq $Database }
Write-Host "Compatibility level =" $c.CompatibilityLevel