Sql DMV查询语法不正确异常

Sql DMV查询语法不正确异常,sql,powershell,ssas,dmv,Sql,Powershell,Ssas,Dmv,我正在编写一个简单的查询函数,以便在将来开始编写更多查询时,使脚本变得高效和简单 Function Query($Query) { $connectionString = "Provider=msolap;Data Source=$Server;Initial Catalog=$Database;" $connection = New-Object System.Data.OleDb.OleDbConnection $connectionString $command

我正在编写一个简单的查询函数,以便在将来开始编写更多查询时,使脚本变得高效和简单

Function Query($Query) {
    $connectionString = "Provider=msolap;Data Source=$Server;Initial Catalog=$Database;"

    $connection = New-Object System.Data.OleDb.OleDbConnection $connectionString

    $command = New-Object System.Data.OleDb.OleDbCommand
    $command.Connection = $connection 
    $command.CommandText = $Query 

    $connection.Open()

    $adapter = New-Object System.Data.OleDb.OleDbDataAdapter #$command
    $adapter.SelectCommand = $command 

    $dataset = New-Object System.Data.DataSet
    [void] $adapter.Fill($dataSet)

    $connection.Close()

    $dataSet.Tables[0]
}
质疑

SELECT [SESSION_ID], [SESSION_SPID] 
FROM $SYSTEM.DISCOVER_SESSIONS";
我得到这个错误:

调用带有1个参数的Fill时出现异常:查询1,41“.”的语法不正确。从中选择[SESSION\u ID]、[SESSION\u SPID]。发现会话。 +[void]$adapter.Fill$dataSet + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +CategoryInfo:NotSpecified::[],MethodInvocationException +FullyQualifiedErrorId:OLEDBEException

我错过什么了吗?我遵循了MSDocs的语法:


实际上,我在没有创建查询函数的情况下成功地尝试了它,它显示了结果。不知何故,将其作为查询函数并不起作用…

使用单引号字符串:

Query 'SELECT [SESSION_ID],[SESSION_SPID] FROM $SYSTEM.DISCOVER_SESSIONS';

在Powershell中,双引号字符串进行字符串插值,即字符串中的$SYSTEM替换为变量SYSTEM的值,或者在本例中,当SYSTEM未定义时,替换为空白字符串。

WOOOW,这实际上就是问题所在!谢谢有没有理由不被接受?