CREATE SET 语句 (MDX)
为当前多维数据集创建具有会话作用域的命名集。
语法
CREATE [SESSION] [ STATIC | DYNAMIC ] [HIDDEN] SET
CURRENTCUBE | Cube_Name
.Set_Name AS 'Set_Expression'
[,Property_Name = Property_Value, ...n]
参数
Cube_Name
提供多维数据集名称的有效字符串表达式。Set_Name
为要创建的命名集提供名称的有效字符串表达式。Set_Expression
返回集的有效多维表达式 (MDX)。Property_Name
提供集属性名称的有效字符串。Property_Value
定义集属性值的有效标量表达式。
注释
命名集是为重用而创建的维度成员集(或者是用于定义集的表达式)。 例如,使用命名集可以定义由销售额排在前十名的商店组成的维度成员集。 此维度成员集可以通过静态方式来定义,也可以通过 TopCount 等函数来定义。 之后,一旦需要使用包含前 10 名商店的集,就可使用此命名集。
CREATE SET 语句所创建的命名集在整个会话期间始终可用,因此,该命名集可用于会话中的多个查询。 有关详细信息,请参阅创建会话作用域的计算成员 (MDX)。
也可以定义用于单个查询的命名集。 若要定义这种集,请在 SELECT 语句中使用 WITH 子句。 有关 WITH 子句的详细信息,请参阅创建查询作用域的命名集 (MDX)。
Set_Expression 子句可以包含支持 MDX 语法的任何函数。 如果使用 CREATE SET 语句创建集时没有指定 SESSION 子句,则该集的作用域为会话。 使用 WITH 子句可创建具有查询作用域的集。
指定当前连接的多维数据集以外的多维数据集将导致错误。 因此,应使用 CURRENTCUBE 来代替多维数据集名称,以表示当前的多维数据集。
作用域
用户定义的集的作用域可以是下表所列的任意一个作用域。
查询作用域
集的可见性和生存期被限制在查询中。 集是在单个查询中定义的。 查询作用域将覆盖会话作用域。 有关详细信息,请参阅创建查询作用域的命名集 (MDX)。会话作用域
集的可见性和生存期被限制在创建该集的会话中。 (如果对该集执行了 DROP SET 语句,集的生存期将短于会话的持续时间。)CREATE SET 语句创建的集的作用域为会话。 使用 WITH 子句可创建具有查询作用域的集。
示例
以下示例创建名为 Core Products 的集。 SELECT 查询并显示调用新创建的集。 必须先执行 CREATE SET 语句才可以执行 SELECT 查询 - 这两个语句不能在同一批中执行。
CREATE SET [Adventure Works].[Core Products] AS '{[Product].[Category].[Bikes]}'
SELECT [Core Products] ON 0
FROM [Adventure Works]
集的求取
集的求取可以定义不同的发生方式;可以定义为仅在集创建时发生一次,也可以定义为在每次使用集时发生。
STATIC
指示只在执行 CREATE SET 语句时,求取一次该集。DYNAMIC
指示每次在查询中使用该集时,都进行求取。
集的可见性
对于查询多维数据集的其他用户来说,集可以是可见的,也可以是不可见的。
- HIDDEN
指定该集对查询多维数据集的用户不可见。
标准属性
每个集都有一组默认属性。 当客户端应用程序连接到 Microsoft Analysis Services 时,根据管理员的选择,将支持或可以支持默认属性。
属性标识符 |
含义 |
---|---|
CAPTION |
客户端应用程序用作集标题的字符串。 |
DISPLAY_FOLDER |
标识客户端应用程序用来显示集的显示文件夹路径的字符串。 文件夹级别的分隔符由客户端应用程序定义。 对于 Analysis Services 提供的工具和客户端,使用反斜线 (\) 作为级别分隔符。若要为已定义的集提供多个显示文件夹,则使用分号 (;) 来分隔文件夹。 |