Tabular model programming for compatibility level 1200 and higher

Applies to: SQL Server Analysis Services Azure Analysis Services Power BI Premium

Beginning with compatibility level 1200, tabular metadata is used to describe model constructs, replacing historical multidimensional metadata as descriptors for tabular model objects. Metadata for tables, columns, and relationships are table, column, and relationship, rather than the multidimensional equivalents (dimension and attribute).


Power BI Premium supports tabular models at the 1500 and higher compatibility level.

You can create new models at compatibility level 1200 or higher by using the Microsoft.AnalysisServices.Tabular APIs, the latest version of Visual Studio with Analysis Services projects, or by changing the CompatibilityLevel of an existing tabular model to upgrade it (also done in Visual Studio). Doing so binds the model to newer versions of the server, tools, and programming interfaces.

Upgrading an existing tabular solution is recommended but not required. Existing script and custom solutions that access or manage tabular models or databases can be used as-is. Azure Analysis Services supports compatibility level 1200 and higher only.

New Tabular models will require different code and script, summarized below.

Object model definitions as tabular metadata constructs

The Tabular Object Model for 1200 or higher models is exposed in JSON through the Tabular Model Scripting Language and through the AMO data definition language through a new namespace, Microsoft.AnalysisServices.Tabular

Script for tabular models and databases

TMSL is a JSON scripting language for Tabular models, with support for create, read, update, an delete operations. You can refresh data via TMSL and invoke database operations for attach, detach, backup, restore, and synchronize. AMO PowerShell accepts TMSL script as input.

See Tabular Model Scripting Language (TMSL) Reference and Analysis Services PowerShell Reference for more information.

Query languages

DAX and MDX are supported for all tabular models.

Expression language

Filters and expressions used to create calculated objects, including measures and KPIs, are formulated in DAX. See DAX in tabular models.

Managed code for tabular models and databases

AMO includes a new namespace, Microsoft.AnalysisServices.Tabular, for working with models programmatically. See Microsoft.AnalysisServices.Tabular Namespace for more information.

See also

Analysis Services developer documentation
Technical reference
Compatibility levels of tabular models and databases