Jump to content

SQL Datenbankunterschiede feststellen


Gast JWSK
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallöle,

 

bei der Suche nach einer eigenen

Lösung via google stieß ich auf diese Seite.

 

Ich bin studentische Hilfskraft und habe die

Aufgabe zwei Datenbanken zu vergleichen.

Da ich leider kein SQL2000 Fuchs bin brauche

ich hier dringend Hilfe.

 

Mein Ziel ist es, die Unterschiede zwischen

zwei verschiedenen Datenbanken automatisiert

feststellen zu können.

Ich möchte bei dieser Überprüfung die Namen

der Tabellen erfassen. Außerdem benötige ich

die Namen der Collums, sowie den gesetzten Datentyp.

 

Ich stelle mir folgendes vor:

 

Ich suche im SQL Query Analyter

entweder eine oder mehrere Systemtabellen

die Tabellenstruktur und/oder die Collums enthält.

Gibt es solche Tabellen, wenn ja wie heißen diese?

 

Alternativ stelle ich mir vor die Struktur als TXT

exportieren zu können und so an die Namen der Tabellen

und Collums zu kommen.

 

Ich hoffe es gibt eine kurzfristige Lösung, der eigentliche

Lösungsanstatz it das direkte Vergleichen der Tabellen mit

dem bloßen Auge. Es handelt sich dummer weise um mehrere

hundert Tabellen mit unzähligen Spalten!

 

Danke

Link zu diesem Kommentar

Ja danke, werde ich gleich testen.

 

Ich vergleiche zwei Datenbanken,

eine neue saubere Dateinbank mit allen

Tabellen etc die Software es benötigt

mit einer kaputten Datenbank bei der

irgendwelche Diskrepanzen zum Defekt

führten.

Link zu diesem Kommentar

Ich habe jetzt folgende Fehler festgestellt:

 

ich habe nicht Unterschiede in den Columns,

sondern in den Indexes (length) sowie in den

Views.

 

Hat nicht irgendjemand eine Idee? Ich denke

ich gehe ein wenn ich das per Hand erledigen muss.

Mal abgesehen davon, dass ich sicher noch Fehler

übersehe!

Link zu diesem Kommentar

Moin,

 

Indizes kann man einfach neu erstellen.

 

Views im Prinzip auch - das sind ja "nur" logische Objekte, die auf den Datenbestand zugreifen. An der Datenstruktur ändert man damit nichts.

 

Gruß, Nils

PS. Du brauchst beim Posten nur Return zu drücken, wenn du einen Absatz machen willst. Bitte die Zeilen nicht künstlich kurz halten. Zudem sind Grußformeln gern gesehen. :)

Link zu diesem Kommentar

Hallo,

 

sorry für meine unfreundlich wirkende Art, die Grußfloskel habe ich in der Tat vergessen. Umbrüche füge ich stets aus Gewohnheit ein, werde auf diese jetzt größtenteils verzichten.

 

Ich bin jetzt bereits einen Schritt weiter, ich möchte von einer Column den Datentyp ändern. Ich mache folgendes:

 

ALTER TABLE tabellenname modify columnname nvarchar(100)

 

Folgende Fehlermeldung erscheint:

 

Msg 170, Level 15, State 1, Server EBTLSXP, Line 1

Line 1: Incorrect syntax near 'description'.

 

Als SQL Tool nutze ich das Commandshell mit osql

Link zu diesem Kommentar

Moinsen,

 

ich bin ja wie durch ein Wunder einen Schritt weiter, die Vergleiche der Tabellen sind abgehakt, ich installiere jetzt ein Update der Software, gucke welche Fehler auftreten

und suche dann manuell den Unterschied um diesen händisch zu beheben.

 

In der funktionierenden Datenbank habe ich nvarchar(100) in der korrupten Datenbank habe ich nvarchar(255). Jetzte möchte ich diesen Datentypunterschied beheben.

 

Folgendes habe ich, dank Deiner Hilfe, zusammengebaut:

ALTER TABLE tablename alter column DESCRIPTION nvarchar(100);

 

Hier erscheint wieder eine ander Fehlermeldung:

The index 'INDEX_MMITEM_DESC' is dependent on column 'DESCRIPTION'.

Msg 4922, Level 16, State 9, Server EBTLSXP, Line 1

ALTER TABLE ALTER COLUMN DESCRIPTION failed because one or more objects access

this column.

 

Ich versuche mich ja seit Anbeginn der Aufgabe als unwürdig zu erweisen, aber man

besteht darauf, dass es der dumme Student lösen soll ;) weil meine Arbeitszeit nichts kostet

Link zu diesem Kommentar

Moin,

 

wenn der bestehende Datentyp nvarchar(255) ist, dann dürfte eine Änderung unnötig sein. Es passen halt 155 mehr Zeichen rein als in die Spalte mit nvarchar(100).

 

Falls die Anwendung nicht mit mehr als 100 Zeichen umgehen kann, kannst du die Änderung natürlcih ausführen. Dazu musst du erst den Index auf der Spalte löschen, welcher das ist, steht in deiner Fehlermeldung.

 

Gruß, Nils

Link zu diesem Kommentar

Moin,

 

vielen Dank für die Antwort, Schande über mein Haupt das ich echt mal keine Ahnung habe. Ich mache das jetzt mit dem Aufgabensteller zusammen, er hat eingesehen, dass ich genug Zeit verschwedet habe.

 

Trotzdem nochmals für die Antworten, eigentlich hätte ich ja eher in ein N00b Forum gepasst.

 

Gruß JWSK

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...