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,这实际上就是问题所在!谢谢有没有理由不被接受?