ssas - 使用 AMO 创建 Analysis Services 数据库的精确副本
问题描述
我正在尝试使用 Microsoft.AnalysisServices 命名空间自动创建 Analysis Services 数据库的精确副本。我的代码是:
using (var server = new Server())
{
server.Connect(connString);
var newDb = server.Databases.GetByName(dbName).Clone();
newDb.Name = newDbName;
newDb.ID = server.Databases.GetNewID();
server.Databases.Add(newDb);
newDb.Update(UpdateOptions.ExpandFull);
server.Disconnect();
}
然而,它似乎创建了一个空数据库,因为从 SSMS 我看不到任何表、数据源和类似的东西(在此处查看我的屏幕截图)。
有没有办法来解决这个问题?谢谢。
解决方案
@gmarchi 您还需要使用Model.clone() 方法克隆子模型对象以使其工作。您可以使用如下代码添加模型 -
var connString = "Provider=MSOLAP;Data Source=asazure://westus2.asazure.windows.net/xxxxxxxxxxxx:rw";
var dbName = "AW Internet Sales";
var newDbName = "CloneDb";
using (var server = new Server())
{
server.Connect(connString);
var newDb = server.Databases.GetByName(dbName).Clone();
var newModel = server.Databases.GetByName(dbName).Model.Clone();
newDb.Name = newDbName;
newDb.ID = server.Databases.GetNewID();
newDb.Model = newModel;
server.Databases.Add(newDb);
newDb.Update(UpdateOptions.ExpandFull);
server.Disconnect();
}
请让我知道,如果你有任何问题。谢谢。
推荐阅读
- css - 尽管 CSS 在其他邮件客户端中工作,但 CSS 在 Outlook 中不起作用
- sql - 在合并单独表中的字段时查找销售额总和的最大值
- angular - 检测 element.nativeElement 角度上的滚动事件
- mongodb - 使用来自 Mongo Compass 的静态公共 IP 连接本地 MongoDB
- amazon-web-services - 如何从 serverless.yml 中的秘密管理器中引用对象值?
- angular - 如何定义`http客户端`
- gerrit - 重命名 gerrit 项目
- reactjs - 导入类型两个不同的项目
- php - 我正在将我的 API 从 slim-3 转换为 slim-4,我正在努力弄清楚如何将 JWT 添加到中间件
- sql - 接收 ORA-01843: 检索两个日期之间的数据时出现无效月份错误