在 Microsoft SQL Server Analysis Services 中,可以参数化多维表达式 (MDX) 语句。 通过参数化语句,可以创建可在运行时自定义的泛型语句。
在创建参数化语句时,可以通过为名称加上 at 符号(@)前缀来标识参数名称。 例如, @Year 将是一个有效的参数名称
MDX 仅支持文本或标量值的参数。 若要创建引用成员、集或元组的参数,必须使用 StrToMember 或 StrToSet 等函数。
在以下 XML for Analysis (XMLA) 示例中,该 @CountryName 参数将包含检索客户数据的国家/地区:
<Envelope xmlns="https://schemas.xmlsoap.org/soap/envelope/">
<Body>
<Execute xmlns="urn:schemas-microsoft-com:xml-analysis">
<Command>
<Statement>
select [Measures].members on 0,
Filter(Customer.[Customer Geography].Country.members,
Customer.[Customer Geography].CurrentMember.Name =
@CountryName) on 1
from [Adventure Works]
</Statement>
</Command>
<Properties />
<Parameters>
<Parameter>
<Name>CountryName</Name>
<Value>'United Kingdom'</Value>
</Parameter>
</Parameters>
</Execute>
</Body>
</Envelope>
若要将此功能与 OLE DB 配合使用,请使用 ICommandWithParameters 该接口。 若要将此功能用于 ADOMD.Net,请使用 AdomdCommand.Parameters 集合。