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 提供的工具和客户端,使用反斜线 (\) 作为级别分隔符。若要为已定义的集提供多个显示文件夹,则使用分号 (;) 来分隔文件夹。

请参阅

参考

DROP SET 语句 (MDX)

其他资源

MDX 数据定义语句 (MDX)