首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在SQL查询中运行XMLA语句?

在SQL查询中运行XMLA语句?
EN

Stack Overflow用户
提问于 2009-04-13 09:08:48
回答 2查看 4.5K关注 0票数 0

我正在尝试在我的分析数据库中创建一个新角色。

我已经测试了多个组合:

当使用Openrowset =>运行简单的MDX查询时,它可以工作。

运行时,它可以正常工作。

尝试使用openrowset=>错误从SQl关系数据库创建新的SSAS角色时。

下面是我正在尝试的代码

代码语言:javascript
复制
SELECT * FROM OpenRowset('MSOLAP', 'DATA SOURCE=servername; Initial Catalog=AnalysisDBName;',
'
<Create xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
            <ParentObject>
                <DatabaseID>AnalysisDBName</DatabaseID>
            </ParentObject>
            <ObjectDefinition>
                <Role xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ddl2="http://schemas.microsoft.com/analysisservices/2003/engine/2" xmlns:ddl2_2="http://schemas.microsoft.com/analysisservices/2003/engine/2/2">
                    <ID>Role 22</ID>
                    <Name>Rolename</Name>
                </Role>
            </ObjectDefinition> 
    </Create>

')

我收到的错误是:

代码语言:javascript
复制
OLE DB provider "MSOLAP" for linked server "(null)" returned message "A required child element is missing under Envelope/soap:Body at line , column  (namespace 'http://schemas.xmlsoap.org/soap/envelope/'). One of Fault, AuthenticateResponse, DiscoverResponse, ExecuteResponse was expected.".
Msg 7321, Level 16, State 2, Line 2
An error occurred while preparing the query "
<Create xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
    <ParentObject>
        <DatabaseID>AnalysisDBName</DatabaseID>
    </ParentObject>
    <ObjectDefinition>
        <Role xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ddl2="http://schemas.microsoft.com/analysisservices/2003/engine/2" xmlns:ddl2_2="http://schemas.microsoft.com/analysisservices/2003/engine/2/2">
            <ID>Role 22</ID>
            <Name>Rolename</Name>
        </Role>
    </ObjectDefinition>
</Create>
" for execution against OLE DB provider "MSOLAP" for linked server "(null)".

请帮助:)

向你致敬,elie

EN

回答 2

Stack Overflow用户

发布于 2009-04-25 23:04:18

您可以将ssas olap添加为链接服务器,然后使用以下代码:

LinkedOlap的EXEC ('XMLAsomething ....rest of your code')

票数 1
EN

Stack Overflow用户

发布于 2009-04-13 09:47:07

OPENROWSET需要一个有效的查询,如"SELECT * FROM table“(使用指定数据源的正确SQL方言)

xml片段在大多数SQL方言中都不是有效的查询,尤其是在T-SQL中。

不幸的是,在MDX中没有与T-SQL等效的CREATE USER,因此不能通过常规SQL语句或OPENROWSET来完成。

SSAS Granting User Access中,它提到了使用AMO来管理用户,这是使用OPENROWSET做不到的。

对不起,这不是一个答案:我只能说如何不这样做…

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/743412

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档