2013-04-26 2 views
1

openquery를 사용하여 SQL Server 2008 저장 프로 시저에서 MDX 쿼리를 실행하고 있습니다.MDX 쿼리와 함께 sql SP를 실행할 때 오류가 발생합니다.

I jst는 웹 사이트에서 본 단계를 따랐습니다. 내가 아래의 쿼리를 실행하면 잘 작동하지만 저장 프로 시저의 오류가 발생합니다.

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

및 SP가 아래 오류를 갖습니다. 당신이 = D 어떤 실수를 닐렌 경우

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

내가 SP에 쓴 코드는 내가 분석 서비스와 MDX에 새로운 오전

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 

다음, 그래서 pls는 저를 수정합니다.

감사합니다.

답변

1

open_query 내에서 MDX 쿼리의 인용 부호가 손실되었습니다. 다음과 같이 행을 변경해보십시오.

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

예. 그건 분명히 rght였습니다. 샘 고마워. – Mask