【问题标题】:Getting error when executing sql SP with MDX query使用 MDX 查询执行 sql SP 时出错
【发布时间】:2013-04-26 11:28:59
【问题描述】:

我正在使用 openquery 在 sql server 2008 存储过程中执行 MDX 查询。

我只是按照在网站上查看的步骤进行操作。当我执行下面的查询时,它工作正常,但是使用存储过程它会出错。

 select * from openquery (TESTLINKSERVER,' SELECT NON EMPTY 
 { [Measures].[Duration], [Measures].[ID] } ON COLUMNS FROM [CUBEDB] ')

使用 SP 得到以下错误。

Incorrect syntax near the keyword 'SELECT'.
Incorrect syntax near '{'.

我在SP中写的代码如下

USE [TESTDB]
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[123CUBE_SP]

AS

BEGIN

declare @mdx_query as varchar(max), @open_query as nvarchar(max), @linked_server as varchar(max)

set @mdx_query = 'SELECT NON EMPTY { [Measures].[Duration], [Measures].[ID] } ON COLUMNS FROM [CUBEDB]'

set @linked_server = 'TESTLINKSERVER'

set @open_query = 'SELECT * FROM OpenQuery('+@linked_server+','+ @mdx_query +')'

execute sp_executesql @open_query

END

我是分析服务和 MDX 的新手,如果您发现任何错误,请纠正我。

谢谢。

【问题讨论】:

    标签: stored-procedures sql-server-2008-r2 mdx openquery


    【解决方案1】:

    您在 open_query 中丢失了 MDX 查询周围的引号。尝试如下更改行:

    set @open_query = 'SELECT * FROM OpenQuery(' + @linked_server + ',''' + @mdx_query + ''')'
    

    【讨论】:

    • 是的,这绝对是正确的。谢谢山姆。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-18
    • 2016-11-11
    • 1970-01-01
    • 2012-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多