Source d'une proc dans table système ?

guizmo123 Messages postés 62 Date d'inscription dimanche 6 octobre 2002 Statut Membre Dernière intervention 13 avril 2007 - 13 avril 2007 à 12:20
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 - 17 avril 2007 à 18:02
Bonjour !

Savez-vous comment avoir la source d'une procédure stockée grâce aux tables système.

J'aimerais dans un but final, en cliquant sur le nom d'une proc dans une liste par exemple, que la source de la proc s'affiche dans un champs de texte...

Merci !

5 réponses

cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
14 avril 2007 à 18:00
Salut,

Avec SQL Server 2000, tu peux te servir de la vue INFORMATION_SCHEMA.ROUTINES (colonne ROUTINE_DEFINITION).
Attention toutefois si la définition de la procédure excède 4000 caractères (ou 8000 je ne me souviens plus du type de donnée exact, logiquement c'est du nvarchar, donc 4000), elle est retournée sous forme de plusieurs lignes il me semble.

Sous SQL Server 2005 tu as la fonction OBJECT_DEFINITION, renvoyant du nvarchar(MAX), ce qui doit régler le problème cité ci dessus (je ne sais pas si la vue INFORMATION_SCHEMA.ROUTINES se comporte différemment)

/*
coq
MVP Visual C#
CoqBlog
*/
0
cs_skweeky Messages postés 259 Date d'inscription mercredi 3 mai 2006 Statut Membre Dernière intervention 11 janvier 2010 8
14 avril 2007 à 18:00
Bonjour

Celà dépend de la version, sous SQL Server 7 et 2000 : syscomments
sous SQL Server 2005 : sys.sql_modules

Cordialement
------------
Christian Robert - Winwise
http://blogs.developpeur.org/christian
MVP SQL Server
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
14 avril 2007 à 18:21
Bien, par curiosité j'ai vérifier, tu peux oublier la vue, elle ne retourne pas plusieurs lignes....
Du coup comme le dit skweeky, sous SQL Server 2000, dit bonjour à syscomments avec une requête de ce genre pour récupérer l'ensemble des parties :

SELECT [comments].[text]
FROM [dbo].[syscomments] AS [comments]
WHERE [comments].[id] = OBJECT_ID('[dbo].[Test]')
ORDER BY [comments].[colid];

/*
coq
MVP Visual C#
CoqBlog
*/
0
cs_skweeky Messages postés 259 Date d'inscription mercredi 3 mai 2006 Statut Membre Dernière intervention 11 janvier 2010 8
17 avril 2007 à 16:32
Vives les vachar(max) !!!

Cordialement
------------
Christian Robert - Winwise
http://blogs.developpeur.org/christian
MVP SQL Server
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
17 avril 2007 à 18:02
Voui ^^

/*
coq
MVP Visual C#
CoqBlog
*/
0
Rejoignez-nous