如何在运行时创建Azure SQL数据库副本?

时间:2016-01-09 04:50:21

标签: sql database vb.net copy azure-sql-database

我是VB.NET和Azure SQL服务的新手,我花了最近3天的时间寻找答案,但却找不到我能真正理解的答案。这是我的方案和问题:

我有一个VB.NET应用程序,用户将登录到他们的帐户,并在自己的Azure SQL数据库下拥有自己的一组表。我希望我的程序能够自动为它们创建数据库(使用自己选择的名称),这将是Azure中现有空数据库的数据库副本。

我已经可以访问master数据库中的数据表,但我不知道如何在运行时从我的程序中复制它。当我运行我的应用程序并调试以下snippit代码时,我收到一个异常错误,说“你必须登录到master数据库”我不知道如何通过弹出来解决该错误,因为我正在使用主管理员我的普通SQL连接字符串中的帐户。

Private Sub BtnActivate_Click(sender As Object, e As RoutedEventArgs)
    If passwrd1.Password <> passwrd2.Password Then
        MsgBox("Password doesn't match Confirm Password.", vbOKOnly)
    Else
        Dim commandString = "CREATE DATABASE " & dbname.Text & " AS COPY OF DBDEV;"
        Using connection As New SqlConnection(My.Settings.DBDEVConnectionString)
            Dim command As New SqlCommand(commandString, connection)
            Try
                connection.Open()
                command.ExecuteNonQuery()
                MsgBox("DATABASE SETUP.  USE " & dbname.Text & "AS DBNAME TO CONNECT TO")
            Catch ex As Exception
                Throw ex
            End Try
        End Using
    End If
End Sub

请帮助,我一直在移动,我正在寻找的一切都没有给我一个明确的答案,这个简单的场景。

1 个答案:

答案 0 :(得分:0)

经过多次尝试,我解决了这个问题:在我的连接字符串中,我将初始目录默认为我的数据库,因此我将其更改为&#34; master&#34; (即使我没有名为master的数据库),它也为我执行了数据库副本。哇噢!