小编AKe*_*ski的帖子

针对分析服务器的 OPENQUERY 中的 8000 个字符限制

我有一个类似的查询

SELECT column1, column2 FROM OPENQUERY(AnalysisServerName, 'MDX QUERY ...').
Run Code Online (Sandbox Code Playgroud)

它位于存储过程中。MDX 查询是动态内置的,查询的长度远远超过 8000 个字符(最多可以达到 400 000 个符号)。

MDX 查询返回大约 200 列,我只需要其中的一些。由于尺寸复杂,我无法减少数量。

因此,我必须将结果写入临时表或直接将SELECT它们作为程序的结果。我决定给SELECT他们。但是,当我尝试使用 省略 8000 个字符的限制时EXEC OPENQUERY(AnalysisServerName, 'MDX QUERY ...') AT AnalysisServerName,我无法SELECT甚至将它们保存到临时表中,因为它发生在存储过程内部并且不允许嵌套(遵循此线程)。

我希望我能做到

SELECT column1, column2 FROM (EXEC OPENQUERY(AnalysisServerName, 'MDX Query') AT AnalysisServerName)
Run Code Online (Sandbox Code Playgroud)

即使我可以直接在分析服务器上执行很长的 MDX 查询

DECLARE @myStatement VARCHAR(MAX)
SET @myStatement = 'OPENQUERY(AnalysisServerName, 'MDX Query')'

EXECUTE (@myStatement) AT AnalysisServerName
Run Code Online (Sandbox Code Playgroud)

我无法对存储过程中的结果做任何事情,因为

DECLARE @myStatement VARCHAR(MAX)
SET @myStatement = 'SELECT column1, column2 FROM OPENQUERY(AnalysisServerName, 'MDX …
Run Code Online (Sandbox Code Playgroud)

sql-server ssas mdx

4
推荐指数
1
解决办法
76
查看次数

标签 统计

mdx ×1

sql-server ×1

ssas ×1