制作azure数据库的副本

时间:2013-02-15 11:43:07

标签: c# .net azure azure-sql-database

我需要复制一个azure数据库,但我无法访问任何管理工具,只能访问连接字符串。

我知道要使用CREATE DATABASE x AS COPY OF y命令我需要在master数据库中,但我不知道如何告诉Azure从那里运行我的命令。例如,我有这段代码:

var commandText = "CREATE DATABASE foobar AS COPY OF " + database;
var connectionString = <my_connection_string>;

using (var conn = new SqlConnection(connectionString))
{
    using (var cmd = new SqlCommand(commandText, conn))
    {
        cmd.CommandType = CommandType.Text;
        conn.Open();
        cmd.ExecuteNonQuery();
    }
}

失败,错误“用户必须在主数据库中” - 正如我所料。

但是我的连接字符串对master数据库无效,那么如何从master数据库执行此命令?如果我在SQL Management Studio中,我会这样做:

use master
CREATE DATABASE x AS COPY OF y

在我的代码中有没有办法模仿它?

1 个答案:

答案 0 :(得分:4)

更改连接字符串以访问主数据库而不是常规数据库。它就是那么简单,也是唯一的解决方案。