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

使用New-AzSqlDatabaseCopy复制数据库时能否包含自动创建的索引?

解决New-AzSqlDatabaseCopy不包含自动创建索引的问题

当使用New-AzSqlDatabaseCopy复制数据库时,自动创建的索引确实不会被包含在副本中——这类索引属于Azure SQL Database自动索引管理功能生成的对象,副本的自动索引策略是独立的,不会直接继承源库的自动索引。以下是两种可行的解决方法:

方法1:将自动索引转为手动管理

在执行复制操作前,先把源库中自动创建的索引转为用户手动维护的索引,这样副本就会包含这些索引:

  1. 运行以下SQL查询,找出所有自动创建的非聚集索引:
SELECT 
    SCHEMA_NAME(t.schema_id) AS SchemaName,
    t.name AS TableName,
    i.name AS IndexName
FROM 
    sys.indexes i
JOIN 
    sys.tables t ON i.object_id = t.object_id
WHERE 
    i.is_auto_created = 1
    AND i.type_desc = 'NONCLUSTERED'
  1. 对每个查询出的索引,执行ALTER INDEX命令将其转为手动管理:
ALTER INDEX [IndexName] ON [SchemaName].[TableName] SET (AUTOMATIC = OFF);

完成后再执行New-AzSqlDatabaseCopy,副本就会包含这些原自动创建的索引。

方法2:使用导出/导入替代复制命令

放弃使用New-AzSqlDatabaseCopy,改用BACPAC文件的导出和导入流程:

  • 导出:使用New-AzSqlDatabaseExport命令将源库导出为BACPAC文件到Azure存储账户
  • 导入:使用New-AzSqlDatabaseImport命令将BACPAC文件导入为新的数据库

这种逻辑备份方式会包含源库所有的对象,包括自动创建的索引,适合需要完整复制所有数据库对象的场景。


内容的提问来源于stack exchange,提问作者A Y B

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 16:32:05