我正在使用 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
我是分析服务和 MDX 的新手,所以如果你 fing=d 有任何错误,请纠正我。
谢谢你。