2013-04-26 4 views
1

J'exécute une requête MDX dans la procédure stockée SQL Server 2008 avec openquery.Obtention d'erreur lors de l'exécution de SP SQL avec une requête MDX

J'ai suivi les étapes affichées sur un site Web. Lorsque j'exécute la requête comme ci-dessous son fonctionnement bien, mais avec la procédure stockée son erreur d'obtention.

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

et avec SP obtenu l'erreur ci-dessous.

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

Le code que j'ai écrit dans SP suit

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 

Je suis nouveau au service d'analyse et MDX, donc merci de me corriger si vous FING = d une erreur.

Merci.

Répondre

1

Vous avez perdu les guillemets autour de votre requête MDX dans la requête open_query. Essayez de changer la ligne comme suit:

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

Ya qui était absolument droit. Merci Sam. – Mask