QUERY sys.sql_modules
используйте эту процедуру, где вы передаете имя функции:
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 '%'+@SearchValue+'%'
--AND o.Type='P' --<uncomment if you only want to search procedures
ORDER BY 1
GO
Эта процедура ищет заданные строки в процедурах, представлениях и функциях. Вы можете искать любую строку, а не только имена функций. Вы также можете включить подстановочные знаки в середине данного поискового запроса.
ФУНКЦИОНАЛЬНЫЕ ПО УМОЛЧАНИЮ
Вы можете указать значения по умолчанию для параметров функции. Однако, когда параметр функции имеет значение по умолчанию, ключевое слово DEFAULT должно быть указано, когда функция получает значение по умолчанию. Это поведение отличается от использования параметров со значениями по умолчанию в хранимых процедурах, в которых пропуск параметра также подразумевает значение по умолчанию.
попробуйте:
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)
ВЫВОД:
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.
Но я предполагаю, что вам нужно изменить функцию, добавив ее в качестве параметра, и теперь нужно ее везде исправлять. Это DEFAULT
все равно будет такой же работой, так как вам нужно прикасаться к каждому звонку.
sp_depends
Вы также можете использовать sp_depends (Transact-SQL) , чтобы найти каждое использование функции.