MDX数据定义 - CREATE SET

为当前立方体创建一个带有会话范围的命名集。

Syntax

  
CREATE [SESSION] [ STATIC | DYNAMIC ] [HIDDEN] SET   
   CURRENTCUBE | Cube_Name  
      .Set_Name AS 'Set_Expression'  
      [,Property_Name = Property_Value, ...n]  

Arguments

Cube_Name
一个有效的字符串表达式,提供立方体名称。

Set_Name
一个有效的字符串表达式,用于为被创建的命名集合提供名称。

Set_Expression
一个有效的多维表达式(MDX)表达式,返回集合。

Property_Name
一个有效字符串,提供集合属性的名称。

Property_Value
一个有效的标量表达式,定义集合性质的值。

Remarks

命名集是一组维度成员(或定义集合的表达式),你可以创建它以再次使用。 例如,命名集可以定义一组维度成员,该维度成员由销售额排名前十的门店集合组成。 该集合可以静态定义,也可以通过像 TopCount 这样的函数定义。 这个命名的集合可以用于需要前10名商店集合的地方。

CREATE SET 语句创建一个命名集合,该集合在整个会话中保持可用,因此可以在会话中的多个查询中使用。 更多信息请参见创建 Session-Scoped 计算成员(MDX)。

你也可以定义一个命名集,供单个查询使用。 要定义这样的集合,可以在SELECT语句中使用WITH子句。 关于WITH条款的更多信息,请参见 创建命名集(MDX)Query-Scoped

Set_Expression子句可以包含任何支持 MDX 语法的函数。 用CREATE SET 语句创建但未指定SESSION子句的集合具有会话范围。 使用WITH子句创建带有查询范围的集合。

指定当前连接的立方体以外的其他立方体会出错。 因此,你应该用 CURRENTCUBE 代替立方体名称来表示当前立方体。

Scope

用户自定义集合可以出现在下表列出的某个作用域内。

查询范围
集合的可见性和生命周期仅限于查询。 集合在单个查询中定义。 查询范围覆盖会话范围。 更多信息请参见创建 Query-Scoped 命名集(MDX)。

会话范围
集合的可见性和寿命仅限于其创建的会话。 (如果在集合上发布了DROP SET 语句,寿命将小于会话时长。)CREATE SET 语句创建一个带有会话范围的集合。 使用WITH子句创建带有查询范围的集合。

Example

以下示例创建了一个称为核心产品(Core Products)的集合。 SELECT 查询随后演示调用新创建的集合。 必须先执行CREATE SET 语句,才能执行SELECT查询——两者不能在同一批次中执行。

CREATE SET [Adventure Works].[Core Products] AS '{[Product].[Category].[Bikes]}'  
  
SELECT [Core Products] ON 0  
  FROM [Adventure Works]  

集合评估

集合评估可以被定义为不同的方式;它可以定义为在创建集合时只发生一次,也可以定义为每次使用该集合时都发生。

静态
表示在CREATE SET 语句被评估时,该集合只被评估一次。

DYNAMIC
表示每次查询中使用该集合时都要评估。

设置可见性

该集合可以对其他查询该立方体的用户可见或不可见。

隐藏
指定该集合对查询立方体的用户不可见。

标准性质

每个集合都有一组默认属性。 当客户端应用程序连接到Analysis Services时,默认属性要么被支持,要么可由管理员选择支持。

属性标识符 Meaning
说明 客户端应用程序用来表示集合的字符串。
DISPLAY_FOLDER 一个字符串,用于标识客户端应用程序用来显示集合的显示文件夹路径。 文件夹级分隔符由客户端应用程序定义。 对于Analysis Services提供的工具和客户端,反斜杠(\)是级别分隔符。 要为定义的集合提供多个显示文件夹,使用分号(;)分隔这些文件夹。

另请参阅

DROP SET 声明(MDX)
MDX数据定义语句(MDX)