首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DMV查询语法错误异常

DMV查询语法错误异常
EN

Stack Overflow用户
提问于 2019-01-28 21:03:54
回答 1查看 180关注 0票数 0

我正在编写一个简单的查询函数,以便在以后开始编写更多查询时,使我的脚本更高效、更简单。

代码语言:javascript
复制
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]
}

查询

代码语言:javascript
复制
SELECT [SESSION_ID], [SESSION_SPID] 
FROM $SYSTEM.DISCOVER_SESSIONS";

我知道这个错误:

使用"1“参数调用"Fill”的异常:“查询(1,41)‘的语法不正确(选择SESSION_ID,SESSION_SPID从.DISCOVER_SESSIONS)”。

  • void $adapter.Fill($dataSet)
  • CategoryInfo : NotSpecified:(:) [],MethodInvocationException
  • FullyQualifiedErrorId : OleDbException

我是不是遗漏了什么?我遵循了每个MSDocs的语法:

https://learn.microsoft.com/en-us/sql/analysis-services/instances/use-dynamic-management-views-dmvs-to-monitor-analysis-services?view=sql-server-2017

实际上,我在没有创建查询函数的情况下成功地尝试了它,并显示了结果。以某种方式使它成为一个查询函数,它不工作.

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-28 21:08:54

使用单引号字符串:

代码语言:javascript
复制
Query 'SELECT [SESSION_ID],[SESSION_SPID] FROM $SYSTEM.DISCOVER_SESSIONS';

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54410271

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档