可以独立创建、更改和删除主要对象。 主要对象包括以下对象:
服务器
数据库
尺寸
立方体
度量值组
分区
观点
挖掘模型
角色
与服务器或数据库关联的命令
数据源
使用 Create 命令在 Microsoft SQL Server Analysis Services 的实例上创建主对象,并使用 Alter 命令更改实例上的现有主对象。 这两个命令都使用 Execute 方法运行。
创建对象
使用 Create
该方法创建对象时,必须先标识包含要创建的 Analysis Services 对象的父对象。 通过在命令的 Create
ParentObject 属性中提供对象引用来标识父对象。 每个对象引用都包含唯一标识命令的父对象 Create
所需的对象标识符。 有关对象引用的详细信息,请参阅“定义和标识对象”(XMLA)。
例如,必须提供对多维数据集的对象引用,才能为多维数据集创建新的度量值组。 属性中 ParentObject
多维数据集的对象引用包含数据库标识符和多维数据集标识符,因为同一多维数据集标识符可能用于不同的数据库。
ObjectDefinition 元素包含 Analysis Services 脚本语言 (ASSL) 元素,用于定义要创建的主要对象。 有关 ASSL 的详细信息,请参阅 使用 Analysis Services 脚本语言(ASSL)进行开发。
如果将命令的属性Create
设置为 AllowOverwrite
true,则可以覆盖具有指定标识符的现有主对象。 否则,如果父对象中已存在具有指定标识符的主要对象,则会发生错误。
有关命令的详细信息Create
,请参阅 Create Element (XMLA)。
创建会话对象
会话对象是临时对象,这些对象仅适用于客户端应用程序使用的显式或隐式会话,并在会话结束时被删除。 可以通过将 Scope
命令的属性 Create
设置为 Session 来创建会话对象。
注释
使用 会话 设置时,该 ObjectDefinition
元素只能包含 Dimension、 Cube 或 MiningModel ASSL 元素。
更改对象
使用Alter
该方法修改对象时,必须先通过在命令的 Alter
Object 属性中提供对象引用来标识要修改的对象。 每个对象引用都包含唯一标识命令的对象所需的对象 Alter
标识符。 有关对象引用的详细信息,请参阅“定义和标识对象”(XMLA)。
例如,必须提供对多维数据集的对象引用才能修改多维数据集的结构。 属性中 Object
多维数据集的对象引用包含数据库标识符和多维数据集标识符,因为同一多维数据集标识符可能用于不同的数据库。
该 ObjectDefinition
元素包含定义要修改的主要对象的 ASSL 元素。 有关 ASSL 的详细信息,请参阅 使用 Analysis Services 脚本语言(ASSL)进行开发。
如果将命令的属性Alter
设置为 AllowCreate
true,则可以创建指定的主对象(如果该对象不存在)。 否则,如果指定的主对象尚不存在,则会发生错误。
使用 ObjectExpansion 属性
如果只更改主对象的属性,并且未重新定义主要对象包含的次要对象,则可以将ObjectExpansion
Alter
命令的属性设置为 ObjectProperties。 然后,该 ObjectDefinition
属性只需要包含主要对象的属性的元素,并且 Alter
该命令将保留与主要对象关联的次要对象。
若要重新定义主要对象的次要对象,必须将属性设置为 ObjectExpansion
ExpandFull ,并且对象定义必须包含主对象包含的所有次要对象。
ObjectDefinition
如果命令的属性未显式包含由主对象包含的Alter
次要对象,则会删除未包含的次要对象。
更改会话对象
若要修改命令创建的Create
会话对象,请将Scope
Alter
命令的属性设置为“会话”。
注释
使用 会话 设置时,该 ObjectDefinition
元素只能包含 Dimension、 Cube 或 MiningModel ASSL 元素。
创建或更改从属对象
虽然或Create
Alter
命令只创建或更改一个最顶层的主要对象,但要创建或修改的主要对象可以包含属于它的其他主要和次要对象的封闭ObjectDefinition
属性中的定义。 例如,如果定义多维数据集,则可以在 ParentObject
多维数据集定义中指定父数据库,并在多维数据集定义 ObjectDefinition
中可以定义多维数据集的度量值组,并在度量值组内为每个度量值组定义分区。 次要对象只能在包含它的主对象下定义。 有关主要和次要对象的详细信息,请参阅数据库对象(Analysis Services - 多维数据)。
例子
DESCRIPTION
以下示例创建一个关系数据源,该数据源引用 Adventure Works DW 多维 2012 示例Microsoft SQL Server 数据库。
代码
<Create xmlns="https://schemas.microsoft.com/analysisservices/2003/engine">
<ParentObject>
<DatabaseID>Adventure Works DW Multidimensional 2012</DatabaseID>
</ParentObject>
<ObjectDefinition>
<DataSource xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="RelationalDataSource">
<ID>AdventureWorksDW2012</ID>
<Name>AdventureWorksDW2012</Name>
<ConnectionString>Data Source=localhost;Initial Catalog=AdventureWorksDW2008R2;Integrated Security=True</ConnectionString>
<ImpersonationInfo>
<ImpersonationMode>ImpersonateServiceAccount</ImpersonationMode>
</ImpersonationInfo>
<ManagedProvider>System.Data.SqlClient</ManagedProvider>
<Timeout>PT0S</Timeout>
</DataSource>
</ObjectDefinition>
</Create>
DESCRIPTION
以下示例将上一示例中创建的关系数据源更改为将数据源的查询超时设置为 30 秒。
代码
<Alter ObjectExpansion="ObjectProperties" xmlns="https://schemas.microsoft.com/analysisservices/2003/engine">
<Object>
<DatabaseID>Adventure Works DW Multidimensional 2012</DatabaseID>
<DataSourceID>AdventureWorksDW2012</DataSourceID>
</Object>
<ObjectDefinition>
<DataSource xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="RelationalDataSource">
<ID>AdventureWorksDW2012</ID>
<Name>AdventureWorksDW2012</Name>
<ConnectionString>Data Source=fr-dwk-02;Initial Catalog=AdventureWorksDW2008R2;Integrated Security=True</ConnectionString>
<ManagedProvider>System.Data.SqlClient</ManagedProvider>
<Timeout>PT30S</Timeout>
</DataSource>
</ObjectDefinition>
</Alter>
注释
命令 ObjectExpansion
的属性 Alter
已设置为 ObjectProperties。 此设置允许 ImpersonationInfo 元素(一个次要对象)从定义的 ObjectDefinition
数据源中排除。 因此,该数据源的模拟信息仍设置为服务帐户,如第一个示例中指定。
另请参阅
Execute 方法 (XMLA)
使用 Analysis Services 脚本语言 (ASSL) 进行开发
在 Analysis Services 中使用 XMLA 进行开发