获取表格数据库的连接数据源

时间:2018-06-27 15:50:51

标签: sql powershell ssas-tabular sql-server-2017

使用SQL2017版本14.0.1.439。我需要使用Powershell更改表格数据库中Connections的dataSource路径。

这是我的代码:

$ServerName="localhost\tabular"
$loadInfo = 
[Reflection.Assembly]::LoadWithPartialName("Microsoft.AnalysisServices")
$server = New-Object Microsoft.AnalysisServices.Server
$server.connect($ServerName)
if ($server.name -eq $null) {
 Write-Output ("Server '{0}' not found" -f $ServerName)
 break
}
foreach ($d in $server.Databases )
{
Write-Output ( "Database: {0}; Status: {1}; Size: {2}MB; Data Sources: {3} " -f $d.Name, $d.State, ($d.EstimatedSize/1024/1024).ToString("#,##0"), $d.DataSources.Count )
}

我的问题是,$ d.DataSources.Count始终为0。

我正在寻找使用PS进行编辑的方法。

1 个答案:

答案 0 :(得分:0)

您应该通过Model.Datasources访问数据源 我可以确认以下代码返回了Tabular模型的数据源数量。

$ServerName="localhost\tabular"
$loadInfo = 
[Reflection.Assembly]::LoadWithPartialName("Microsoft.AnalysisServices")

$server = New-Object Microsoft.AnalysisServices.Server
$server.connect($ServerName)

if ($server.name -eq $null) {
 Write-Output ("Server '{0}' not found" -f $ServerName)
 break
}
foreach ($d in $server.Databases )
{
     Write-output ( "Database: {0}; Status: {1}; Size: {2}MB; Data Sources: {3} " -f $d.Name, $d.State, ($d.EstimatedSize/1024/1024).ToString("#,##0"), $d.Model.DataSources.Count )
}