1

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

私は Analysis サービスと MDX を初めて使用するので、間違いがあれば修正してください。

ありがとうございました。

4

1 に答える 1