我正在尝试使用表格对象模型(TOM) C#脚本动态创建一个SSAS表格数据库。我能够创建表格模型的所有组件,但计算表除外,并且我无法在网上找到任何解决方案。
任何关于这方面的见解都是值得高度赞赏的。谢谢
发布于 2018-09-26 22:58:39
这可以通过使用与MSOLAP提供程序的OLE DB连接执行作为计算表的DDL的TMSL命令来完成。首先,需要执行该命令来创建计算表。接下来,需要对表进行处理才能使用它,下面示例的第二部分介绍了这一点。OLE DB和SSAS连接可以使用相同的连接字符串。确保正确地转义TMSL命令中的任何\或",并在连接字符串中相应地设置Extended Properties和Provider属性。
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();
}https://stackoverflow.com/questions/52510904
复制相似问题