使用 openrowset 执行时 MDX 查询 returns 个不同的值
MDX query returns different values when executed using openrowset
当我在存储多维数据集本身的分析服务器上执行相同的 MDX 查询并通过来自 sql 服务器的 openrowset 函数调用时,我得到明显不同的输出。
--MDX query--
@sql = '--MDX query--'
exec(N'select * from openrowset
(''MSOLAP''
, ''Data Source= ANALYTIC SERVER; Catalog= CATALOG;''
,''' + @sql + ''');'
有没有办法在SQL端获得与直接查询解析服务器时相同的输出?
我正在做类似于 this question 的事情,建议使用 openquery 和/或 openrowset 的解决方案。
其他问题已经注意到使用openrowset和分层MDX查询时的问题。
只需select相同的输出...
@sql = '--MDX query--'
exec(N'select "[Blah].[Blah 3].[Blah 3].[Table Code Level 2]" from openrowset
(''MSOLAP''
, ''Data Source= ANALYTIC SERVER; Catalog= CATALOG;''
,''' + @sql + ''');'
我认为部分问题来自于在 MDX 中使用分层调用,这导致使用 openrowset 时返回值不同。
我发现的解决方案非常简单,就是使用 OLAPextensions add on instead, as suggested by a similar question 。与为 openquery 设置链接服务器相比,此解决方案在本地服务器上运行起来更快更容易。 table it returns 与解析服务器完全一样
DECLARE @Server NVARCHAR(30) = 'ANALYTIC SERVER'
DECLARE @Database NVARCHAR(50) = 'CATALOG';
DECLARE @MDX NVARCHAR(MAX) = '--MDX query--'
EXEC ExecuteOLAP @Server, @Database, @MDX;
当我在存储多维数据集本身的分析服务器上执行相同的 MDX 查询并通过来自 sql 服务器的 openrowset 函数调用时,我得到明显不同的输出。
--MDX query--
@sql = '--MDX query--'
exec(N'select * from openrowset
(''MSOLAP''
, ''Data Source= ANALYTIC SERVER; Catalog= CATALOG;''
,''' + @sql + ''');'
有没有办法在SQL端获得与直接查询解析服务器时相同的输出?
我正在做类似于 this question 的事情,建议使用 openquery 和/或 openrowset 的解决方案。
其他问题已经注意到使用openrowset和分层MDX查询时的问题。
只需select相同的输出...
@sql = '--MDX query--'
exec(N'select "[Blah].[Blah 3].[Blah 3].[Table Code Level 2]" from openrowset
(''MSOLAP''
, ''Data Source= ANALYTIC SERVER; Catalog= CATALOG;''
,''' + @sql + ''');'
我认为部分问题来自于在 MDX 中使用分层调用,这导致使用 openrowset 时返回值不同。
我发现的解决方案非常简单,就是使用 OLAPextensions add on instead, as suggested by a similar question 。与为 openquery 设置链接服务器相比,此解决方案在本地服务器上运行起来更快更容易。 table it returns 与解析服务器完全一样
DECLARE @Server NVARCHAR(30) = 'ANALYTIC SERVER'
DECLARE @Database NVARCHAR(50) = 'CATALOG';
DECLARE @MDX NVARCHAR(MAX) = '--MDX query--'
EXEC ExecuteOLAP @Server, @Database, @MDX;