使用 smo 克隆 azure SQL 数据库?

use smo to clone azure SQL database?

我正在编写一个程序来测试 Azure sql 的更新脚本。 这个想法是 - 首先克隆一个数据库(或用源模式和内容填充一个克隆) - 然后 运行 克隆上的更新脚本

本地我有这个工作,但天蓝色我有一个问题,我没有看到任何文件名。如果我在同一个 azure "server" 上将一个数据库还原到另一个数据库,难道我也不必在还原过程中重命名数据文件吗?

对于本地恢复,我这样做:

restore.Devices.AddDevice(settings.BackupFileName, DeviceType.File);
restore.RelocateFiles.Add(new RelocateFile("<db>", Path.Combine(settings.DataFileDirectory, settings.TestDatabaseName + ".mdf")));
restore.RelocateFiles.Add(new RelocateFile("<db>_log", Path.Combine(settings.DataFileDirectory, settings.TestDatabaseName + "_1.ldf")));
restore.SqlRestore(srv);

在 Azure 上克隆数据库是否需要类似的东西?

多多问候! 沃尔克

您可以创建一个数据库作为 [source]的副本:

CREATE DATABASE database_name [ COLLATE collation_name ]
| AS COPY OF [source_server_name].source_database_name

{
   (<edition_options> [, ...n]) 
}

<edition_options> ::= 
{
      MAXSIZE = { 100 MB | 500 MB | 1 | 5 | 10 | 20 | 30 … 150…500 } GB  
    | EDITION = { 'web' | 'business' | 'basic' | 'standard' | 'premium' } 
    | SERVICE_OBJECTIVE = 
          {  'basic' | 'S0' | 'S1' | 'S2' | 'S3' 
            | 'P1' | 'P2' | 'P3' | 'P4'| 'P6' | 'P11' 
            | { ELASTIC_POOL(name = <elastic_pool_name>) } } 
}
[;]