Frage

In SQL Server, wenn Sie wählen Sie einen SP oder UDF zu modifizieren, lädt es die Alte Abfrage in einem Abfrage-Fenster-Objekte. Sind diese Abfragen zugänglich in einer Systemtabelle, damit ich die alten Aussagen irgendwo speichern kann? Es sieht aus wie syscomments einige Objekte hat aber nicht alle von ihnen.

Danke

War es hilfreich?

Lösung

Verwenden Sie syscomments nicht , weil syscomments.text nvarchar(4000) ist und als Ergebnis wird etwas gestutzt, die länger ist.

Mit sys.sql_modules weil definition nvarchar(max) ist, wird es nicht lange Code gestutzt.

verwenden, um dies den Text eines bestimmten Verfahrens zu betrachten, Ansicht oder Funktion:

SELECT * FROM sys.sql_modules WHERE object_id=object_id('YourProcedure')

Mit diesem Namen, Typen zu erhalten, und Wortlaut einer Prozedur, Ansicht oder Funktion:

SELECT DISTINCT
    o.name AS Object_Name,o.type_desc, m.definition
    FROM sys.sql_modules        m 
        INNER JOIN sys.objects  o ON m.object_id=o.object_id
    WHERE m.object_id=object_id('CPT_SP_IRA_ComboBox_IncidentStatus')

Andere Tipps

Ich bin nicht ganz sicher, was Sie fragen, aber Sie können mit der folgenden Abfrage gespeicherten Prozeduren finden Sie unter:

SELECT SO.Type,SO.Name,SC.Text
FROM sysobjects SO (NOLOCK)
INNER JOIN syscomments SC (NOLOCK) on SO.Id = SC.ID
AND SO.Type = 'P'
ORDER BY SO.Name

Wenn Sie nach verschiedenen Objekttypen sind, nehmen Sie einen Blick auf sys. sysobjects für die verschiedenen Typen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top