0

I have an SSAS DB that was automatically generated by an application i use. This DB has a lot of measures and I would like to define 'display folder' to the measures so the cube will be more user friendly in Excel. I want an xmla/mdx ( script that will define to display folder for the measures. One way i found is to manually do that one time in visual studio and then generate a full 'alter cube' xmla scripts that applies the current definitions and run it every time after the cube is generated. The problem is I need a shorter scripts that will only define the display folder (the full 'alter cube' script is very long and this creates other problems for me.

4

1 回答 1

0

我不确定,但我认为您不能使用 XMLAALTER语句来更改比完整度量定义更详细的任何内容。解决您的问题的最佳方法可能是使用 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()方法,该方法将您所做的任何结构更改写入您调用Update回服务器的对象下方的任何对象。
  5. 您断开与服务器的连接(可能通过对象using上的 C# 构造server)。

有关 AMO 的文档,请参阅http://msdn.microsoft.com/en-us/library/microsoft.analysisservices.adomdserver(v=sql.105).aspx

于 2014-06-11T17:06:12.707 回答