SSAS表格通过TMSL添加列

时间:2018-02-23 19:03:29

标签: ssas-tabular

早上好,

目标:我正在尝试将新列添加到SSAS表格模型表中。长期目标是在需要时以编程方式进行大批量更改。

资源我发现: https://docs.microsoft.com/en-us/sql/analysis-services/tabular-models-scripting-language-commands/create-command-tmsl

这个给出了我一直关注但似乎不起作用的模板。

到目前为止我尝试过:

{
  "create": {  
    "parentObject": {  
      "database": "TabularModel_1_dev"
      , "table": "TableABC"
    }, 
    "columns": [
        {
        "name":  "New Column"
        , "dataType": "string"
        , "sourceColumn": "Column from SQL Source"
        }
    ]   
  }
}

第一个是示例中最真实的但返回以下错误:

"The JSON DDL request failed with the following error: Unrecognized JSON property: columns. Check path 'create.columns', line 7, position 15.."

尝试二:

{
  "create": {  
    "parentObject": {  
      "database": "TabularModel_1_dev"
      , "table": "TableABC"
    }, 
    "table": {
    "name": "Item Details by Branch",
    "columns": [
        {
        "name":  "New Column"
        , "dataType": "string"
        , "sourceColumn": "New Column"
        }
    ]
    }
  }
}

在子列表中添加表也会返回错误;

"...Cannot execute the Create command: the specified parent object cannot have a child object of type Table.." 

在parentObject中省略表也是不成功的。

1 个答案:

答案 0 :(得分:1)

我知道帖子发布已经三年了,但我也在尝试同样的事情,并在我的探索中偶然发现了这篇帖子。我最终联系了微软,并被告知他们在文档中提供的添加列示例是一个“文档错误”。事实上,您不能只添加一列,您必须通过 createOrReplace 为其提供整个表定义。

SSAS Error Creating Column with TMSL