Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Récupérer par programme la source de la procédure stockée SQL Server identique à la source renvoyée par l'interface graphique de SQL Server Management Studio ?

EXEC sp_helptext 'your procedure name';

Cela évite le problème avec l'approche INFORMATION_SCHEMA dans lequel la procédure stockée est coupée si elle est trop longue.

Mise à jour :David écrit que ce n'est pas identique à son sproc... peut-être parce qu'il renvoie les lignes en tant qu'"enregistrements" pour préserver la mise en forme ? Si vous voulez voir les résultats dans un format plus "naturel", vous pouvez d'abord utiliser Ctrl-T (sortie sous forme de texte) et il devrait l'imprimer exactement comme vous l'avez saisi. Si vous faites cela dans le code, il est trivial de faire un foreach pour assembler vos résultats exactement de la même manière.

Mise à jour 2 :Cela fournira à la source une "CREATE PROCEDURE" plutôt qu'une "ALTER PROCEDURE" mais je ne connais aucun moyen de lui faire utiliser "ALTER" à la place. Un peu trivial, n'est-ce pas ?

Mise à jour 3 :consultez les commentaires pour plus d'informations sur la façon de maintenir votre SQL DDL (structure de base de données) dans un système de contrôle de code source. C'est vraiment la clé de cette question.