Jump to content
Sign in to follow this  
Guest JWSK

SQL Datenbankunterschiede feststellen

Recommended Posts

Guest JWSK

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

Share this post


Link to post

Moin,

 

was genau musst du vergleichen?

 

Ich habe keinen SQL 2000 mehr da (aktuell ist 2008 R2), aber es sollte eine View namens "INFORMATION_SCHEMA.COLUMNS" geben, die dir beim Strukturvergleich hilfreich sein dürfte.

 

SELECT * FROM INFORMATION_SCHEMA.COLUMNS

 

Gruß, Nils

Share this post


Link to post
Guest JWSK

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.

Share this post


Link to post
Guest JWSK

Hallöle,

 

also die Abfrage funktioniert,

leider ist der vergleichsaufwand

hinterher genau so groß wie bei

dem Strukturvergleich OHNE

Hilfsmittel. Hat jemand noch

eine ergänzende Idee?

Wäre für jede Hilfe dankbar!

Share this post


Link to post
Guest JWSK

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!

Share this post


Link to post

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. :)

Share this post


Link to post
Guest JWSK

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

Share this post


Link to post

Moin,

 

nicht "modify", sondern "alter column".

ALTER TABLE

 

Was immer du da auch machst ... ich denke, die Tabellen sind nicht unterschiedlich?! Und warum machst du das per osql, wenn du auch den Query Analyzer nehmen kannst?

 

Gruß, Nils

Share this post


Link to post
Guest JWSK

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

Share this post


Link to post

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

Share this post


Link to post
Guest JWSK

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

Share this post


Link to post

Moin,

 

ist schon okay. Auf der Ebene in einer Datenbank braucht man schon einiges an Hintergrund, der fehlt dir einfach. Da hat offenbar derjenige, der die Aufgabe zugewiesen hat, das nihct richtig eingeschätzt.

 

Gruß, Nils

Share this post


Link to post
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte überlege Dir, ob es nicht sinnvoller ist ein neues Thema zu erstellen.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

Werbepartner:



×
×
  • Create New...