MS Sql Server Object Création / script Alter
-
19-09-2019 - |
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
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.