none
Datenbankdesign der Tabellen Index(e)

    Frage

  • Hallo erst mal

    Ich habe eine mdb mit x Tabellen hier mal 2 Tabellen mit Feldern

    tblAdressen

    -Adresse (ist Index mit Autowert)
    -....

    tblAdressen_Telefonbuch

    -ID_AT (ist Index mit Autowert)
    -Adresse (damit ich eben den eintrag einer Adresse zuweisen kann)
    -....

    funktioniert auch alles

    da ich nun aber die mdb auf den MSSQL Server Portieren möchte bin ich mir bei der Namensgebung der Felder nicht sicher

    hier eben das Feld Adresse in der Tabelle tblAdressen_Telefonbuch sollte man das Feld Adresse dort anders benennen?

    Für mich ist der Übersicht wegen einfacher die Felder dann gleich zu benennen nur bekommen diese scheinbar in Access (2003) intern bei der Indexirung einen Internen Namen

    In der Tabelle
    MSysRelationships sieht es dann so aus

    <></> <><tfoot></tfoot> </>
    MSysRelationships
    ccolumn grbit icolumn szColumn szObject szReferencedColumn szReferencedObject szRelationship
    1 4352 0 Adresse tblAdressen_TeleNummern Adresse tblAdressen {32F91E92-9155-4B57-AF98-3C40FAE2FE65}

    Wenn ich dann die mdb mit dem MSSMA zum MSSQL Server bringe meckert er mir immer die Namensgebung {32F91E92-9155-4B57-AF98-3C40FAE2FE65} an.

    A2SS0030: Foreign key 
    {32F91E92-9155-4B57-AF98-3C40FAE2FE65} has a name that might cause problems
    for the Access application to function correctly against SQL Server.

    A2SS0030: Index
    '
    {32F91E92-9155-4B57-AF98-3C40FAE2FE65}' has a name that might cause problems
    for the Access application to function correctly against SQL Server

    Wie mache ich das am besten.


    • Bearbeitet MCDPone Samstag, 17. März 2012 08:56
    Freitag, 16. März 2012 11:59

Antworten

  • Hallo!

    Falls gar nichts klappt könntest du per VBA die Indizes bzw. Relations durchgehen und jene mit einer GUID als Namen in ein anderes Format umstellen.

    Prinzip:

    1. Inhalt merken
    2. Index bzw. Relation löschen
    3. Index bzw. Relation mit gemerktem Inhalt neu erstellen

    Eine andere Möglichkeit wäre, den Migration Assistent zu verbessern, damit solche Fälle (die übrigens von Access selbst erzeugt werden) keinen Fehler verursachen. .. das müssten allerdings die Herstellen vom Assistenten machen.

    Eine weitere Möglichkeit (die ich nutzte): die Tabellen per selbst geschriebener Anwendung zu portieren. :)

    mfg
    Josef


    Code-Bibliothek für Access-Entwickler
    AccUnit - Testen von Access-Anwendungen
    Virtueller Access-Stammtisch



    • Bearbeitet Josef Pötzl Montag, 26. März 2012 10:45
    • Als Antwort markiert MCDPone Dienstag, 27. März 2012 11:29
    Montag, 26. März 2012 10:38

Alle Antworten

  • Hallo!

    Falls gar nichts klappt könntest du per VBA die Indizes bzw. Relations durchgehen und jene mit einer GUID als Namen in ein anderes Format umstellen.

    Prinzip:

    1. Inhalt merken
    2. Index bzw. Relation löschen
    3. Index bzw. Relation mit gemerktem Inhalt neu erstellen

    Eine andere Möglichkeit wäre, den Migration Assistent zu verbessern, damit solche Fälle (die übrigens von Access selbst erzeugt werden) keinen Fehler verursachen. .. das müssten allerdings die Herstellen vom Assistenten machen.

    Eine weitere Möglichkeit (die ich nutzte): die Tabellen per selbst geschriebener Anwendung zu portieren. :)

    mfg
    Josef


    Code-Bibliothek für Access-Entwickler
    AccUnit - Testen von Access-Anwendungen
    Virtueller Access-Stammtisch



    • Bearbeitet Josef Pötzl Montag, 26. März 2012 10:45
    • Als Antwort markiert MCDPone Dienstag, 27. März 2012 11:29
    Montag, 26. März 2012 10:38
  • Ich denke das ich auch aus der Access Anwendung heraus die Tabellen erzeugen werde - füllen kann ich sie ja schon dank deines Tipps bei der Insert in AutoWert Feldern

    Deine Anwendung die du erwähnst gibt es die zu erwerben?

    Dienstag, 27. März 2012 11:46
  • Hallo!

    Nein, erwerben kannt du die nicht, du kannst sie aber downloaden, ausprobieren, umschreiben und verwenden. ;-)

    Ich erstellte mir einmal diese DBMS-Test-Anwendung, in der ich für verschiedene DBMS die Tabellen aus Vorlagen-Tabellen (waren Jet-Tabellen) erzeugte.
    Beachte aber, dass das nur eine Test-Anwendung ist und der Code eher "auf die Schnelle" geschrieben wurde, daher ist das kein besonders ausgereifter Code. Der Code könnte einiges an Refactoring vertragen - falls du Lust hast, würde ich mich freuen, einen verbesserten Code einbauen zu können. :-)

    Prinzip der Konvertierung: es gibt je DBMS eine Klasse, in der eingestellt wird, wie die Jet-Datentypen im jeweiligen DBMS laden sollen.

    mfg
    Josef


    Code-Bibliothek für Access-Entwickler
    AccUnit - Testen von Access-Anwendungen
    Virtueller Access-Stammtisch

    Dienstag, 27. März 2012 11:59