Datenbank mit SQL-Befehl kopieren

  • VB.NET
  • .NET (FX) 4.0

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von Mono.

    Datenbank mit SQL-Befehl kopieren

    Hallo,

    In einem Programm kann man verschiedene Projekte managen.
    Jedes Projekt ist in einer eigenen Datenbank abgelegt.
    Dies war eine Vorgabe, daran konnte ich nichts rütteln.
    So kann man einzelne Projekte ein - und ausblenden usw.

    Hier zur Frage:
    Ist es möglich per SQL-Befehl eine gesamte Datenbank von "vorlage" zu "DatenbankNeu" zu kopieren?

    wie im phpmyadmin, da kann man die gesamte Datenbank inklusive Struktur an einen neuen Ort kopieren - und gut ist.

    Das Programm soll ich also selbst ein neues Projekt, ausgehend von einem Netzwerkpfad, selbst anlegen können.

    Das muss doch möglich sein. Oder ?
    Habe bereits etliche Seiten auf Google abgeklappert und kein Ergebnis gefunden, nur SQLDumps - usw.


    Mein Ziel wäre ein Code in vb.net wie folgender (achtung pseudocode)

    VB.NET-Quellcode

    1. Private Sub dbCopy(ByVal NewDBName As String)
    2. cSQL.ExecuteNonQuery("COPY DATABSE FROM vorlage TO " & NewDBName)
    3. End Sub




    Hinweis: dieser Teil funktioniert einwandfrei, es geht nur um das Query selbst, in der ersten "Blase" :)

    VB.NET-Quellcode

    1. Friend Shared Function ExecuteNonQuery(ByVal Query As String, Optional ByVal ProjsDB As Boolean = False) As String
    2. Try
    3. Using connection As New MySqlConnection(IIf(ProjsDB = False, My.Settings.ProjektConnectionString, My.Settings.ProjectsConnectionString).ToString)
    4. Using command As New MySqlCommand()
    5. ' Set the connection
    6. command.Connection = connection
    7. ' Not necessary, but good practice
    8. command.CommandType = CommandType.Text
    9. ' Example query using parameters
    10. command.CommandText = Query
    11. connection.Open()
    12. 'fire command
    13. command.ExecuteNonQuery()
    14. End Using ' Dispose Command
    15. End Using ' Dispose (and hence Close) Connection
    16. Catch ex As Exception
    17. MessageBox.Show("Unerwarteter Fehler aufgetreten in 'cSQL.vb.ExecuteUpdate' : " & vbNewLine & ex.Message) '& vbnewline & "InnerException: " & ex.InnerException.ToString)
    18. End Try
    19. Return Nothing
    20. End Function
    Afaik gibt es da keine TSQL Befehl für. Das Ganze musst du wohl über SQL Dump machen. Kannst ja eine kleine Batch Datei erstellen die das macht

    dev.mysql.com/doc/refman/5.6/e…ump-copying-database.html
    Das ist meine Signatur und sie wird wunderbar sein!