CONSULTA sys.sql_modules
uso de este procedimiento, donde se pasa en el nombre de la función:
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
Este procedimiento búsquedas dentro de los procedimientos, vistas y funciones de la cadena dada. Puede buscar cualquier cadena, no solo nombres de funciones. También puede incluir comodines en el medio del término de búsqueda dado.
predeterminados de funciones
puede especificar valores predeterminados para los parámetros de la función. Sin embargo, cuando un parámetro de la función tiene un valor predeterminado, la palabra clave DEFAULT debe especificarse cuando la función recupera el valor predeterminado. Este comportamiento es diferente de usar parámetros con valores predeterminados en procedimientos almacenados en los que omitir el parámetro también implica el valor predeterminado.
Pruébelo:
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)
SALIDA:
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.
Pero supongo que es necesario cambiar una función, añadiendo como parámetro, y ahora hay que fijarlo en todas partes. Esto DEFAULT
todavía sería mucho trabajo, ya que debe tocar cada llamada hecha a él.
sp_depends
también se puede utilizar para encontrar sp_depends (Transact-SQL) de cada uso de la función.
Creo que han escuchado una forma similar de hacer esto, pero no sé cómo generar scripts para todos los procesos de una vez. Puedes ayudar. De todos modos, THNX para una respuesta rápida. –
¿Por qué completa todos los procedimientos en un archivo, si puede buscar en sus procedimientos almacenados en db con sp que agregué a mi respuesta? – hgulyan