为当前立方体创建一个带有会话范围的命名集。
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提供的工具和客户端,反斜杠(\)是级别分隔符。 要为定义的集合提供多个显示文件夹,使用分号(;)分隔这些文件夹。 |