2013-04-26 42 views
1

我正在使用openquery執行SQL Server 2008存儲過程中的MDX查詢。執行SQL SP與MDX查詢時得到錯誤

我jst遵循在網站上查看的步驟。當我執行下面的查詢時,它的工作正常,但存儲過程出現錯誤。

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('[email protected]_server+','+ @mdx_query +')' 

execute sp_executesql @open_query 

END 

我是新來分析服務和MDX,所以請你FING = d任何錯誤指正。

謝謝。

回答

1

您在open_query中已經丟失了MDX查詢周圍的引號。嘗試更改該行如下:

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

雅絕對正確。謝謝薩姆。 – Mask 2013-05-03 03:32:15