3 Stimmen

SQL Server-Skript zum Zusammenfassen einer gespeicherten Prozedur

Für eine bestimmte gespeicherte Prozedur möchte ich die folgende Zusammenfassung -

  • Mit Spaltennamen ausgewählte Tabellen
  • Geänderte Tabellen (Einfügen, Aktualisieren oder Löschen) mit Spaltennamen (bei Aktualisierung)
  • Jede untergeordnete gespeicherte Prozedur, die mit derselben Zusammenfassung wie die beiden obigen Punkte aufgerufen wird.
  • Übergebene Parameter

Kennt jemand ein solches T-SQL-Skript, um eine gespeicherte Prozedur zusammenzufassen?

3voto

Arion Punkte 30771

Sie können verwenden sp_help um Informationen über Parameter und Informationen über das Objekt zu erhalten.

EXEC sp_help yourProcedure;

Um herauszufinden, was er für Tabellen und Spalten verwendet, können Sie dann sp_depends

EXEC sp_depends yourProcedure;

Aquí ist ein nützlicher Link, der die Abhängigkeiten von Sql-Objekten auflistet

Oder Sie können auch verwenden. Aber es ist nur für 2008 und höher.

SELECT * FROM sys.dm_sql_referenced_entities ('dbo.yourProcedure', 'OBJECT');
SELECT * FROM sys.dm_sql_referencing_entities('dbo.yourProcedure', 'OBJECT');

denn sp_depends ist veraltet.

Wenn die Speicherprozedur dynamisches Sql verwendet. Dann ist das einzige, was Sie verwenden müssen:

sp_helptext yourProcedure 

Dadurch wird der Inhalt der Prozedur zurückgegeben.

Wenn Sie Dynamic sql in Ihrer Speicherprozedur haben. Sie könnten etwas wie dies tun:

DECLARE @tbl TABLE(Text VARCHAR(MAX))
INSERT INTO @tbl
EXEC sp_helptext yourProcedure

SELECT 
    sysTables.name 
FROM 
    dbo.sysobjects AS sysTables
WHERE EXISTS
    (
        SELECT
            NULL
        FROM
            @tbl AS tbl
        WHERE
            tbl.Text LIKE '%'+sysTables.name+'%'
    )

Dadurch werden die in der Speicherprozedur verwendeten Objekte zurückgegeben.

0voto

Vinnie Punkte 3839

Dadurch erhalten Sie den eigentlichen Text der gespeicherten Prozedur, den Sie kopieren und in ein anderes Abfragefenster einfügen und analysieren können.

sp_helptext yourProcedure

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X