用于定义度量显示文件夹的xmla / mdx脚本

时间:2014-06-02 13:21:22

标签: ssas mdx xmla measures

我有一个由我使用的应用程序自动生成的SSAS DB。 这个数据库有很多措施,我想定义'显示文件夹'这些措施使得多维数据集在Excel中更加用户友好。 我想要一个xmla / mdx(将定义为显示措施文件夹的脚本)。 我找到的一种方法是在visual studio中手动执行一次,然后生成一个完整的“更改”立方体。 xmla脚本应用当前定义并在每次生成多维数据集后运行它。 问题是我需要一个只会定义显示文件夹的较短脚本(完整的' alter cube'脚本很长,这给我带来了其他问题。

1 个答案:

答案 0 :(得分:0)

我不是很确定,但我认为您不能使用XMLA ALTER语句来更改比完整度量定义更详细的内容。可能最适合您的问题的方法是使用AMO的小型.net程序。我使用下面的C#作为示例代码,但您也可以使用VB.net。 AMO的工作方式是:

  1. 使用以下代码连接到服务器:

    Server server = new Server(); server.Connect("Data source=servername\\instancename;Initial catalog=Adventure Works DW 2008 SE");

  2. 您可以浏览从数据库到要更改的对象的层次结构(在您的情况下是一个度量),类似于:

    MeasureCollection measures = sever.Databases.FindByName("Adventure Works DW 2008 SE").Cubes.Find("YourCubeName").Measures; -- choose the measure(s) you need

  3. 您更改了此对象的某些属性(仅更改RAM中的对象结构)。
  4. 您可以在对象层次结构的任何对象(在您的情况下可能是多维数据集对象)上调用Update()方法,该方法会在您调用的对象下面写下您所做的任何对象的任何结构更改{{ 1}}回到服务器。
  5. 您与服务器断开连接(可能通过Update对象上的C#using构造。)
  6. 有关AMO的文档,请参阅http://msdn.microsoft.com/en-us/library/microsoft.analysisservices.adomdserver(v=sql.105).aspx