【问题标题】:Getting collation of SSAS cube with MDX使用 MDX 对 SSAS 多维数据集进行排序
【发布时间】:2017-11-07 20:38:42
【问题描述】:

有没有办法通过 MDX 查询获得 collation used by an SSAS cube?我知道这可以通过 T-SQL select DATABASEPROPERTYEX ('table','collation') 完成,但我有一个应用程序,它只有一个 OLEDB 连接,我可以将 MDX 查询发送到(所以,没有 Server Management Studio)。

我知道OPENQUERY,但这需要一个链接表,我可能有也可能没有,我无法创建。

【问题讨论】:

    标签: sql-server tsql ssas collation


    【解决方案1】:

    我不是 MDX 专家,但不要认为您不能为此使用 MDX。我已经使用 PowerShell 和分析管理对象 (AMO) 完成了这种事情。 This article 是一个很好的参考。我无法对此进行测试,但 Powershell cmdlett 脚本将如下所示:

    PS C:\AMOScripts> $database.collation
    

    【讨论】:

      【解决方案2】:

      可以通过进行一些字母比较的查询来间接完成:

      WITH MEMBER [Measures].[IsAccentSensitive] AS 'a'<>'á'
                  MEMBER[Measures].[IsCaseSensitive] AS 'a'<>'A'
                  MEMBER[Measures].[IsBinary] AS 'A'<'_' AND '_'<'a'
               SELECT { [Measures].[IsAccentSensitive],[Measures].[IsCaseSensitive],[Measures].[IsBinary] } ON 0 FROM CubeName
      

      IsBinary 为真将胜过 IsAccentSensitive 和 IsCaseSensitive 为真。 二进制测试'_'&lt;'a'是因为'_'在ASCII中的大小写字母之间。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-01-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多