2013-02-15 85 views
2

我需要制作一份蔚蓝数据库的副本,但我无权访问任何管理工具,只能访问连接字符串。制作蔚蓝数据库的副本

我知道要使用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数据库” - 如我所料。

但是,我的连接字符串对主数据库无效,所以如何从主数据库执行此命令?如果我在SQL管理工作室,我只会这样做:

use master 
CREATE DATABASE x AS COPY OF y 

有没有什么办法模拟我的代码?

+1

顺便说一句,你不能在SQL Azure中使用'USE db' – wqw 2013-02-17 18:03:11

回答

4

更改连接字符串以访问主数据库而不是常规数据库。这是如此简单,唯一的解决方案。

+0

我担心你会这么说 - 好的谢谢。 – 2013-02-15 11:58:08

+0

这是我们必须处理的安全性的一部分。 ;)请随时将我的回答标记为答案。 – JustAnotherUserYouMayKnow 2013-02-15 11:59:38