Ich muss ein altes Projekt ohne Dokumentation führen, und es gibt eine Datenbank mit vielen Tabellen und Funktionen und gespeicherten Prozeduren. Ich möchte eine Struktur der Abhängigkeiten zwischen Tabellen und gespeicherten Prozeduren erstellen, zum Beispiel führt diese Prozedur diese Prozeduren aus und verwendet diese Tabellen.
Gibt es ein Werkzeug, das mir helfen kann?
Wenn nicht, was ist der Ausgangspunkt für solche Algorithmen? Ich meine, dass ich den Quellcode aller Prozeduren aus der Datenbank bekommen kann und dann für alle 'exec #', 'update #', 'in # einfügen' und so weiter parse. Und in diesem Fall, was ist der beste Weg, um dieses Problem zu lösen (Regex vielleicht, oder einige spezielle Algorithmen ...)?
Higarian, Ihr Code war sehr nützlich für mich. Ich habe es ein wenig verfeinert, um zirkuläre Abhängigkeiten zu entfernen, Tabellenreferenzen einzuschließen und nach dem ObjectPath zu sortieren.
%Vor%Jemand hat die bezahlten Add-Ons von Redgate erwähnt. ApexSQL ist ein weiteres Unternehmen, das Add-Ons für SQL Server erstellt. Einige von ihnen kosten Geld, aber andere sind kostenlos und immer noch ziemlich nützlich.
ApexSQL Search ist einer der kostenlosen. Es sind 2 Hauptmerkmale:
Nachdem Sie es installiert haben, klicken Sie einfach mit der rechten Maustaste auf ein Objekt oder eine Datenbank und klicken Sie auf View dependencies
(ganz unten, mit einem Symbol daneben). Verwechseln Sie es nicht mit View Dependencies
(ganz oben, ohne ein Icon daneben), das ist das in SQL Server eingebaute. Ich finde das Layout des hierarchischen Diagramms am nützlichsten.
Links:
Tags und Links sql-server parsing database text