检查数据库中是否存在某个密钥

时间:2013-02-04 10:05:31

标签: ssas ssas-2008 adomd.net

我保存了某些MDX查询,并使用ADOMD.NET运行它们。我得到了CellSet,我将其转换为数据集。这一切都很好。现在,DB团队已经改变了立方体结构。他们更新了DimesnionName,属性名称等。某些维度已重命名,有些维度已被删除。由于这个原因,我无法运行保存的查询。我想创建一个控制台应用程序,它将获取键列表([DimensionName]。[AttributeName]或[DimensionName]。[AttributeName]。[MemeberName]格式),它会告诉我以下键不存在。

请以编程方式告诉我这是否可行。我不想手动检查它。

请分享一个链接或代码,以帮助我实现这一目标。

谢谢。

1 个答案:

答案 0 :(得分:0)

如果您已经使用ADOMD,那么这应该没问题,只需使用元数据查询:

http://msdn.microsoft.com/en-us/library/ms123485.aspx

或者,AMO很不错http://msdn.microsoft.com/en-us/library/microsoft.analysisservices.aspx

我在SSIS中使用它进行处理,您可以轻松地在.Net中使用它来测试元素的存在:

using Microsoft.AnalysisServices;

...

Server server = new Server();
server.Connect(cubeConnectionString);
Database database = server.Databases.FindByName(databaseName);
Cube cube = database.Cubes.FindByName(cubeName);


foreach (MeasureGroup measureGroup in cube.MeasureGroups)           
{
  foreach (Partition partition in measureGroup.Partitions)
  {
  ...
  }
}

foreach (CubeDimension cubeDimension in cube.Dimensions)
{
  Dimension dimension = cubeDimension.Dimension;
  var dimName = dimension.Name;
  ...
}

预先为所需的所有元素查找名称可能是最难的部分(并保持最新状态)。

在多维数据集中触发所有查询并尝试捕获“没有这样的东西”响应会不会更容易吗?