You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用AMO创建Analysis Services数据库完全副本时生成空库如何解决

Analysis Services 自动化克隆数据库为空的修复方案

问题原因

你调用的无参Clone()方法仅克隆数据库对象的顶层基础属性,不会递归克隆数据源、数据表、分区、角色等下级子对象,最终只会生成没有元数据结构的空数据库,对应你在SSMS中看到的现象如下:
SSMS空数据库截图

修复代码

只需要将Clone()改为带参数的重载方法Clone(true)即可实现深克隆,完整代码如下:

using (var server = new Server())
{
    server.Connect(connString);
    var sourceDb = server.Databases.GetByName(dbName);
    // 传入true开启深克隆,递归复制所有子级对象
    var newDb = sourceDb.Clone(true);
    newDb.Name = newDbName;
    newDb.ID = server.Databases.GetNewID();
    server.Databases.Add(newDb);
    newDb.Update(UpdateOptions.ExpandFull);
    // 可选:需要同步源库数据时开启全量处理
    // newDb.Process(ProcessType.ProcessFull);
    server.Disconnect();
}

额外注意事项

  • 如果你只需要克隆数据库的元数据结构,不需要同步数据,不需要添加上面注释的Process代码;如果需要新库和源库数据一致,取消注释执行全量处理即可。
  • 操作前确认使用的连接账号对源数据库有读取权限,对目标Analysis Services实例有创建数据库的权限,避免权限不足导致部分对象克隆失败。
  • 该逻辑同时适配本地SQL Server Analysis Services、Azure Analysis Services、Power BI Premium工作区的克隆操作。

内容的提问来源于stack exchange,提问作者gmarchi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 14:45:03