QUERY sys.sql_modules
utiliser cette procédure, où l'on passe dans le nom de la fonction:
CREATE PROCEDURE dbo.Find_Text
@SearchValue nvarchar(500)
AS
SELECT DISTINCT
s.name+'.'+o.name AS Object_Name,o.type_desc
FROM sys.sql_modules m
INNER JOIN sys.objects o ON m.object_id=o.object_id
INNER JOIN sys.schemas s ON o.schema_id=s.schema_id
WHERE m.definition Like '%'[email protected]+'%'
--AND o.Type='P' --<uncomment if you only want to search procedures
ORDER BY 1
GO
Cette recherches procédure dans les procédures, les vues et les fonctions de la chaîne donnée. Vous pouvez rechercher n'importe quelle chaîne, pas seulement les noms de fonction. Vous pouvez également inclure des caractères génériques au milieu du terme de recherche donné.
FONCTION DÉFAUT
vous pouvez spécifier des valeurs par défaut des paramètres de la fonction. Cependant, lorsqu'un paramètre de la fonction a une valeur par défaut, le mot-clé DEFAULT doit être spécifié lorsque la fonction récupère 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 lesquelles l'omission du paramètre implique également la valeur par défaut.
Essayes:
CREATE FUNCTION dbo.Just_Testing
(
@Param1 int
,@Param2 int=0
)
RETURNS varchar(100)
BEGIN
RETURN CONVERT(varchar(10),@Param1)+'-'+CONVERT(varchar(10),@Param2)
END
GO
PRINT 'hello world '+dbo.Just_Testing(2,default)+', '+dbo.Just_Testing(5,2)
GO
PRINT 'hello world '+dbo.Just_Testing(2 )+', '+dbo.Just_Testing(5,2)
SORTIE:
hello world 2-0, 5-2
Msg 313, Level 16, State 2, Line 1
An insufficient number of arguments were supplied for the procedure or function dbo.Just_Testing.
Mais je devine que vous avez besoin de changer une fonction, en ajoutant en tant que paramètre, et maintenant besoin de fixer partout. Cette DEFAULT
serait encore autant de travail, car vous devez toucher tous les appels qui y sont faits.
sp_depends
vous pouvez également utiliser sp_depends (Transact-SQL) pour trouver toutes les utilisation de la fonction.
Je crois avoir entendu une façon similaire de le faire, mais ne savent pas comment générer des scripts pour tous les procs en une seule fois. Pouvez-vous aider. De toute façon, merci de répondre rapidement. –
Pourquoi remplissez-vous toutes les procédures dans un fichier, si vous pouvez rechercher dans vos procédures stockées dans db avec sp que j'ai ajouté à ma réponse? – hgulyan