SQL OpenRowset - 对象没有列

时间:2017-01-03 18:07:59

标签: sql sql-server mdx linked-server

我有一个动态存储过程,它为OpenRowset查询创建一个mdx语句。因此,mdx语句中的对象可能是空的。在这种情况下,我想要一个空字符串

SQL Server给我这个错误: “ OLE DB提供程序”“用于链接服务器”(null)“表示该对象没有列,或者当前用户没有该对象的权限。”

我尝试了不同的东西(Catch Statement,sp_describe_first_result_set),但没有任何工作......

我该如何处理此错误?在我的声明中,即。客户“阿巴斯”不可用......

SELECT A.* FROM OpenRowset('MSOLAP', 'DATASOURCE=.; Initial Catalog=CUBE','

SELECT      
    {[Dim Customer].[v Dim Customer Name].[Customer].&[Abbas]} *
    {[Dim Salesperson].[Lastname].&[Fima 1]} *
    {[Dim Creditcard].[v Dim Creditcard Cardtype].[Cardtype].&[Vista]} ON 0


FROM CUBE

WHERE [Measures].[total]

') as A

1 个答案:

答案 0 :(得分:1)

请尝试对行上的列和维度进行处理:

SELECT A.* FROM OpenRowset('MSOLAP', 'DATASOURCE=.; Initial Catalog=CUBE','

SELECT      {[Measures].[total]} ON 0,
    {[Dim Customer].[v Dim Customer Name].[Customer].&[Abbas]} *
    {[Dim Salesperson].[Lastname].&[Fima 1]} *
    {[Dim Creditcard].[v Dim Creditcard Cardtype].[Cardtype].&[Vista]} ON 1
FROM CUBE

') as A