Trouver toutes les procédures stockées appelant une fonction
Comment puis-je trouver toutes les procédures stockées qui sont l'appel d'un particulier fonction définie par l'utilisateur dans SQL Server 2005.
Ou comment attribuer un défaut de la valeur à un paramètre dans une fonction définie par l'utilisateur, de sorte que lorsqu'une procédure stockée appels de fonction et de ne pas passer toute valeur à ce paramètre la fonction suppose que la valeur par défaut.
Ce qui concerne,
Abhishek jain
source d'informationauteur Abhishek Jain
Vous devez vous connecter pour publier un commentaire.
REQUÊTE de sys.sql_modules
l'utilisation de cette procédure, où vous pouvez passer le nom de la fonction:
Cette procédure de recherches dans les procédures, les affichages et les fonctions de la chaîne. Vous pouvez rechercher n'importe quelle chaîne, et pas seulement les noms de fonction. Vous pouvez également inclure des cartes sauvages dans le milieu de la terme de recherche donné.
FONCTION PAR DÉFAUT
vous pouvez spécifier des valeurs par défaut pour les paramètres de la fonction. Toutefois, Lorsque l'un des paramètres de la fonction a une valeur par défaut, le mot-clé par DÉFAUT doit être spécifié lorsque la fonction pour récupérer la valeur par défaut. Ce comportement est différent de l'utilisation de paramètres avec des valeurs par défaut dans les procédures stockées dans lequel l'omission du paramètre implique également la valeur par défaut.
l'essayer:
De SORTIE:
Mais je devine que vous avez besoin de changer une fonction, l'ajout d'un paramètre, et maintenant besoin de le fixer partout. Cette
DEFAULT
serait encore beaucoup de travail, car vous avez besoin de toucher à tous les appels.SP_DEPENDS
vous pouvez également utiliser sp_depends (Transact-SQL) trouver chaque utilisation de la fonction.
Il suffit d'utiliser cette procédure pour rechercher un texte dans vos procédures stockées.
Vous devez être prudent lors de l'utilisation de la SYSCOMMENTS table comme suggéré par hgulyan... Que le tableau a de la définition de l'objet brisé en plusieurs lignes et pourrait causer à vos critères de recherche manquer si elle s'est brisée entre les deux entrées. Dans SQL 2005 et plus tard, vous pouvez utiliser le SYSMODULES table à la place. Exécutez le code suivant pour voir les différences et de rechercher les occurrences où des mots-clés (c'est à dire - peut-être votre phrase de recherche) ont été répartis sur plusieurs lignes lors de l'utilisation de la syscomments méthode...
Un "low-tech" façon de trouver toutes les procédures stockées à l'aide d'une fonction de gestion de l'utilisation en studio pour "générer des scripts" pour tous les procs en un seul fichier, puis utilisez la fenêtre de l'éditeur de faire une recherche sur les mots clés que vous souhaitez trouver.