使用表格对象模型程序脚本在SSAS表格模型中创建计算表

时间:2018-09-26 06:00:24

标签: automation ssas-tabular

我正在尝试使用表格对象模型(TOM)C#脚本动态创建SSAS表格数据库。我可以创建表格模型的所有组件(计算表除外),并且无法在线找到任何解决方案。

任何对此的见解都受到高度赞赏。 谢谢

1 个答案:

答案 0 :(得分:0)

这可以通过使用与MSOLAP提供程序的OLE DB连接执行TMSL命令(该命令是已计算表的DDL)来完成。首先,将需要执行命令以创建计算表。接下来,将需要对该表进行处理以使其可用,这在下面的示例的第二部分中进行了介绍。 OLE DB和SSAS连接都可以使用相同的连接字符串。确保在TMSL命令中正确转义任何\",并在连接字符串中相应地设置Extended PropertiesProvider属性。

string connString = "Data Source=YourSSASInstance;Initial Catalog=YourTabularDatabase;Provider=MSOLAP.7;Integrated Security=SSPI;Extended Properties=Format=Tabular;";
     using (OleDbConnection oleDBConn =  new OleDbConnection(connString))    
       {
       OleDbCommand oleDBCmd = new OleDbCommand(commandWithTMSL);
       oleDBCmd.Connection = oleDBConn;
       oleDBConn.Open();
       oleDBCmd.ExecuteNonQuery();
       }
         using (Microsoft.AnalysisServices.Tabular.Server serv = new Microsoft.AnalysisServices.Tabular.Server())
         {
             serv.Connect(connString);
             Microsoft.AnalysisServices.Tabular.Database db = serv.Databases["YourTabularDatabase"];
             Model m = db.Model;
             m.Tables["NewCalculatedTable"].RequestRefresh(RefreshType.Full);
             m.SaveChanges();
         }