0

在 SSAS 中,当我们从 Visual Studio 手动处理维度时,可以选择忽略维度键错误。但是我在 XMLA 脚本中没有看到它的等价物,尽管有很多 binging 和谷歌搜索。如果可能,请提供帮助。

4

2 回答 2

2

XMLA 脚本仅提及您要使用选项处理的维度/事实/数据库。其余多维数据集的所有设置(例如:忽略重复键)都是从多维数据集本身继承的。因此,如果您在 SSAS 多维数据集中设置了这些属性,那么它将被小心处理。但是,您可以通过 XMLA 分别处理每个维度以避免其他关键相关问题,但这并不简单,您必须获取每个维度的 XMLA 脚本 例如:

    <Batch xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
  <Parallel>
    <Process xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ddl2="http://schemas.microsoft.com/analysisservices/2003/engine/2" xmlns:ddl2_2="http://schemas.microsoft.com/analysisservices/2003/engine/2/2" xmlns:ddl100_100="http://schemas.microsoft.com/analysisservices/2008/engine/100/100" xmlns:ddl200="http://schemas.microsoft.com/analysisservices/2010/engine/200" xmlns:ddl200_200="http://schemas.microsoft.com/analysisservices/2010/engine/200/200" xmlns:ddl300="http://schemas.microsoft.com/analysisservices/2011/engine/300" xmlns:ddl300_300="http://schemas.microsoft.com/analysisservices/2011/engine/300/300">
      <Object>
        <DatabaseID>Database_Name</DatabaseID>
        <DimensionID>Dimension_Name</DimensionID>
      </Object>
      <Type>ProcessFull</Type>
      <WriteBackTableCreation>UseExisting</WriteBackTableCreation>
    </Process>
  </Parallel>
</Batch>

基本上,您可以避免 SSAS 多维数据集本身的维度键错误。例如,当表中同时包含 NULL 和空白时,您将收到重复错误。

更新

您可以通过转到数据库 > 流程 > 更改设置来更改维度设置 在此处输入图像描述

然后单击维度键错误选项卡并设置所需的值

在此处输入图像描述

完成后单击确定并单击脚本以生成相关的 XMLA 脚本。 在此处输入图像描述

您会注意到,现在您的 XMLA 将具有带有您选择的值的ErrorConfiguration节点。

XMLA - 报告并停止

    <Batch xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
  <ErrorConfiguration xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ddl2="http://schemas.microsoft.com/analysisservices/2003/engine/2" xmlns:ddl2_2="http://schemas.microsoft.com/analysisservices/2003/engine/2/2" xmlns:ddl100_100="http://schemas.microsoft.com/analysisservices/2008/engine/100/100" xmlns:ddl200="http://schemas.microsoft.com/analysisservices/2010/engine/200" xmlns:ddl200_200="http://schemas.microsoft.com/analysisservices/2010/engine/200/200" xmlns:ddl300="http://schemas.microsoft.com/analysisservices/2011/engine/300" xmlns:ddl300_300="http://schemas.microsoft.com/analysisservices/2011/engine/300/300">
    <KeyErrorLimit>2</KeyErrorLimit>
    <KeyErrorLimitAction>StopLogging</KeyErrorLimitAction>
    <KeyNotFound>ReportAndStop</KeyNotFound>
    <KeyDuplicate>ReportAndStop</KeyDuplicate>
    <NullKeyConvertedToUnknown>ReportAndStop</NullKeyConvertedToUnknown>
    <NullKeyNotAllowed>ReportAndStop</NullKeyNotAllowed>
  </ErrorConfiguration>
  <Parallel>
    <Process xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ddl2="http://schemas.microsoft.com/analysisservices/2003/engine/2" xmlns:ddl2_2="http://schemas.microsoft.com/analysisservices/2003/engine/2/2" xmlns:ddl100_100="http://schemas.microsoft.com/analysisservices/2008/engine/100/100" xmlns:ddl200="http://schemas.microsoft.com/analysisservices/2010/engine/200" xmlns:ddl200_200="http://schemas.microsoft.com/analysisservices/2010/engine/200/200" xmlns:ddl300="http://schemas.microsoft.com/analysisservices/2011/engine/300" xmlns:ddl300_300="http://schemas.microsoft.com/analysisservices/2011/engine/300/300">
      <Object>
        <DatabaseID>Database_Name</DatabaseID>
      </Object>
      <Type>ProcessFull</Type>
      <WriteBackTableCreation>UseExisting</WriteBackTableCreation>
    </Process>
  </Parallel>
</Batch>

您还可以通过将所有默认值更改为其他值来生成相同的值,一旦获得 XMLA,然后给它一个所需的值。

于 2015-09-23T07:31:17.587 回答
0

这里有两种简单的方法。

A. 从​​ Visual Studio

在此处输入图像描述

B. 从 SQL Server Management Studio 在此处输入图像描述

生成的 XMLA 脚本不会在 XMLA 脚本中显示 ErrorConfiguration 元素,但它会自动处理您配置的忽略错误。您可以在 SQL Server 代理或服务中的任何位置使用这些 XMLA 脚本来自动处理多维数据集/维度。

于 2015-09-24T21:43:17.333 回答