none
Datenbanken zusammenfügen RRS feed

  • Frage



  • Hallo zusammen,

    kennt Ihr ein Script womit ich alle Objekte mehrere
    Datenbanken in eine neue Datenbank verschieben kann.


    Donnerstag, 5. April 2012 10:38

Antworten

  • Hi,

    ist das nur eine einmalige Sache oder brauchst Du das öfters?

    Wenn öfters, wäre ggfs. Red Gate SQL Compare was für dich.

    Wenn es nur einmalig oder zumindest nicht allzu oft sein soll, kannst Du auch das SQL Server Management Studio nehmen.

    Datenbank
     -> Tasks
       -> Skripts generieren
         -> ...

    Das führst Du dann für jede Datenbank aus, aus der Du Objekte übernehmen willst. Die generierten Skripte kannst Du dann in der neuen Datenbank ausführen.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community


    Donnerstag, 5. April 2012 10:50
    Moderator
  • D.h. aus 12 lokalen Kundendatenbanken soll ein 1 Kundendatenbank in der Wolke werden? Warum denn? Wenn die Gründe die für zwölf Datenbanken sprechen noch exisiteren, solltest du sie so in der Wolke anlegen.

    Ansonsten wirst du um manuelles Bearbeiten der Erstellungsskripten nicht rumkommen und entsprechend wird auch der Aufwand beim Kopieren der Daten sein. Ich würde über einen Mandantenansatz nachdenken, bzw. den Missbrauch von Schemata. D.h. aus Schema DB1.Schema1 wird DB1_Schema1 in der neuen Datenbank. Das lässt sich auch leicht mit Suchen und Ersetzen in Skripten machen.

    Mittwoch, 11. April 2012 09:35
    Moderator
  • Hallo Stefan,

    die Aufteilung der Datenbanken machte bei dieser Softwarelösung und Größe schon Sinn. Es wurden Globale Datenbank für Daten angelegt die übergreifend sind und je Modul eigene Datenbanken. So mussten wir dem Kunden auch nur die SQL-Strukturen geben die er braucht und bezahlt hat, ohne unser ganzes Schema zu verbreiten.

    Ich habe mir jetzt eigene Scripts zur Erstellung der Datenstruktur erstellt.

    Ich danke für die Antworten

    Gruß

    Frank

    Samstag, 30. Juni 2012 08:31

Alle Antworten

  • Hi,

    ist das nur eine einmalige Sache oder brauchst Du das öfters?

    Wenn öfters, wäre ggfs. Red Gate SQL Compare was für dich.

    Wenn es nur einmalig oder zumindest nicht allzu oft sein soll, kannst Du auch das SQL Server Management Studio nehmen.

    Datenbank
     -> Tasks
       -> Skripts generieren
         -> ...

    Das führst Du dann für jede Datenbank aus, aus der Du Objekte übernehmen willst. Die generierten Skripte kannst Du dann in der neuen Datenbank ausführen.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community


    Donnerstag, 5. April 2012 10:50
    Moderator
  • Hi,

    ich müsste nicht nur das Schema sondern auch die Daten der Tabellen übernehmen. Ich habe pro Server 12 Datenbanken die in 1 neue kopiert werden soll. Diesen Vorgang muß ich bei mehr als 10 Kunden wiederholen, um später dann diese neue Datenbanken für SQL Azur vorzubereiten.

    Den Vorgang mit den Scripten nutze ich für meine Updates, damit kann ich aber nur mit großem Aufwand die Daten verschieben. Gibt es keine sys Tabelle wo die Beziehung der Objekte zur Datenbank verändert werden kann ?

    Donnerstag, 5. April 2012 11:07
  • Hi,

    ich müsste nicht nur das Schema sondern auch die Daten der Tabellen übernehmen. Ich habe pro Server 12 Datenbanken die in 1 neue kopiert werden soll.

    Ganz ehrlich? Dein Datenbank"design" dürfte doch erheblich überarbeitungsbedürftig sein.

    Diesen Vorgang muß ich bei mehr als 10 Kunden wiederholen, um später dann diese neue Datenbanken für SQL Azur vorzubereiten.

    Dann bietet sich IMHO Red Gate SQL Compare, in deinem Fall zusammen mit SQL Data Compare an. Damit kannst Du das größtenteils automatisieren. Falls Du mit .NET Entwicklung vertraut bist, bietet Red Gate auch eine Library an, mit der man das komplett selbst problemlos an seine Bedürfnisse anpassen kann.

    Gibt es keine sys Tabelle wo die Beziehung der Objekte zur Datenbank verändert werden kann ?

    Nö? Das wär auch ziemlich schlecht, wenn es sowas geben würde. Da hängt noch viel mehr dran als nur das einzelne Objekt.

    Nur zur Klarstellung: Es gibt solche Tabellen schon. Die kannst Du aber aus gutem Grund nicht einfach so ändern. Denn wenn Du es könntest, kannst Du dir ziemlich sicher sein, dass hinterher überhaupt nichts mehr funktioniert.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Donnerstag, 5. April 2012 12:47
    Moderator
  • Hallo Stefan

    Stefan Falz [MVP] wrote:

    Nur zur Klarstellung: Es gibt solche Tabellen schon. Die kannst Du aber
    aus gutem Grund nicht einfach so ändern. Denn wenn Du es könntest, kannst
    Du dir ziemlich sicher sein, dass hinterher überhaupt nichts mehr
    funktioniert.

    Wenn ich mich richtig erinnere, war das in SQL2000 sogar noch möglich (aktivierbar über ein einfaches Häkchen) und wurde dann in späteren Versionen unterbunden. Gut so.

    Gruss
    Henry

    Freitag, 6. April 2012 03:25
  • D.h. aus 12 lokalen Kundendatenbanken soll ein 1 Kundendatenbank in der Wolke werden? Warum denn? Wenn die Gründe die für zwölf Datenbanken sprechen noch exisiteren, solltest du sie so in der Wolke anlegen.

    Ansonsten wirst du um manuelles Bearbeiten der Erstellungsskripten nicht rumkommen und entsprechend wird auch der Aufwand beim Kopieren der Daten sein. Ich würde über einen Mandantenansatz nachdenken, bzw. den Missbrauch von Schemata. D.h. aus Schema DB1.Schema1 wird DB1_Schema1 in der neuen Datenbank. Das lässt sich auch leicht mit Suchen und Ersetzen in Skripten machen.

    Mittwoch, 11. April 2012 09:35
    Moderator
  • Hallo Frankseins,

    Ich gehe davon aus, dass die Antworten Dir weitergeholfen haben.
    Solltest Du noch "Rückfragen" dazu haben, so gib uns bitte Bescheid.

    Grüße,
    Robert


    Robert Breitenhofer, MICROSOFT  Twitter Facebook
    Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „Entwickler helfen Entwickler“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.

    Dienstag, 17. April 2012 12:19
    Moderator
  • Hallo Stefan,

    die Aufteilung der Datenbanken machte bei dieser Softwarelösung und Größe schon Sinn. Es wurden Globale Datenbank für Daten angelegt die übergreifend sind und je Modul eigene Datenbanken. So mussten wir dem Kunden auch nur die SQL-Strukturen geben die er braucht und bezahlt hat, ohne unser ganzes Schema zu verbreiten.

    Ich habe mir jetzt eigene Scripts zur Erstellung der Datenstruktur erstellt.

    Ich danke für die Antworten

    Gruß

    Frank

    Samstag, 30. Juni 2012 08:31