Question

Dans Sql Server lorsque vous choisissez de modifier un SP ou UDF il charge les objets modifient la requête dans une fenêtre de requête. Sont ces requêtes accessibles dans une table système, je peux stocker les déclarations alter quelque part? Il ressemble à syscomments a quelques objets, mais pas tous.

Merci

Était-ce utile?

La solution

Ne pas utiliser syscomments , parce que syscomments.text est nvarchar(4000) et par conséquent tronque tout ce qui est plus.

Utilisez sys.sql_modules parce que definition est nvarchar(max), il ne sera pas tronquer code long.

utiliser pour afficher le texte d'une procédure donnée, vue, ou la fonction:

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

Utilisez cette option pour obtenir le nom, le type et le texte de toute procédure, vue, ou la fonction:

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')

Autres conseils

Je ne suis pas tout à fait sûr de ce que vous demandez, mais vous pouvez voir les procédures stockées avec la requête suivante:

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

Si vous êtes après différents types d'objets, jetez un oeil à sys. sysobjects pour les différents types.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top