2013-04-26 2 views
1

Выполняю запрос MDX в хранимой процедуре sql server 2008 с openquery.Ошибка при выполнении sql SP с запросом MDX

I 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 любую ошибку.

Thank you.

ответ

1

Вы потеряли кавычки вокруг вашего запроса MDX в open_query. Попробуйте изменить линию следующим образом:

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

Ya, что было абсолютно безупречно. Спасибо, Сэм. – Mask