¿Hay alguna forma que pueda encontrar en el procedimiento almacenado de SQL Server Management Studio por nombre o por parte del nombre? (En el contexto de base de datos activa)Buscar procedimiento almacenado por nombre
Gracias por la ayuda
¿Hay alguna forma que pueda encontrar en el procedimiento almacenado de SQL Server Management Studio por nombre o por parte del nombre? (En el contexto de base de datos activa)Buscar procedimiento almacenado por nombre
Gracias por la ayuda
Se puede utilizar:
select *
from
sys.procedures
where
name like '%name_of_proc%'
si necesita el código se puede ver en la tabla syscomments
select text
from
syscomments c
inner join sys.procedures p on p.object_id = c.object_id
where
p.name like '%name_of_proc%'
Editar Actualización:
También puede utilizar la versión estándar de ansi
SELECT *
FROM
INFORMATION_SCHEMA.ROUTINES
WHERE
ROUTINE_NAME LIKE '%name_of_proc%'
Suponiendo que estés en el Explorador de objetos Detalles (F7 ) que muestra la lista de procedimientos almacenados, haga clic en el botón Filtros y escriba el nombre (o parte del nombre).
Muchas gracias, no sabía nada sobre el filtro, de alguna manera nunca vi ese botón. –
Esto funciona para tablas y vistas (entre otras cosas), así, no sólo sprocs:
SELECT
'[' + s.name + '].[' + o.Name + ']',
o.type_desc
FROM
sys.objects o
JOIN sys.schemas s ON s.schema_id = o.schema_id
WHERE
o.name = 'CreateAllTheThings' -- if you are certain of the exact name
OR o.name LIKE '%CreateAllThe%' -- if you are not so certain
También le da el nombre de esquema que será útil en cualquier no- base de datos trivial (por ejemplo, una donde necesita una consulta para encontrar un procedimiento almacenado por nombre).
Migrando una aplicación heredada de sql 2005 a 2016, mi script obtuvo 'sintaxis incorrecta cerca de'errorMessage', lo cual no fue de mucha ayuda. Cuando ejecuté el mismo sql en SSSM, agregó "en el procedimiento 'some_name'", ¡pero no existía tal procedimiento almacenado en ninguna parte! Resultó que era un disparador, y su consulta lo encontró. ¡Gracias! – mickeyf
truco muy limpio Me tropiezo con intentar una inyección SQL, en el explorador de objetos en el cuadro de búsqueda simplemente use sus caracteres de porcentaje, y esto buscará TODO los procedimientos almacenados, funciones, vistas, tablas, esquemas, índices ... Me cansé de pensar en más :)
puede utilizar esta consulta:
SELECT
ROUTINE_CATALOG AS DatabaseName ,
ROUTINE_SCHEMA AS SchemaName,
SPECIFIC_NAME AS SPName ,
ROUTINE_DEFINITION AS SPBody ,
CREATED AS CreatedDate,
LAST_ALTERED AS LastModificationDate
FROM INFORMATION_SCHEMA.ROUTINES
WHERE
(ROUTINE_DEFINITION LIKE '%%')
AND
(ROUTINE_TYPE='PROCEDURE')
AND
(SPECIFIC_NAME LIKE '%AssessmentToolDegreeDel')
Como se puede ver, se puede hacer una búsqueda en el interior del cuerpo del procedimiento almacenado también.
@ardi, Nuevamente estás aquí! : <> – Ali
Si desea obtener el texto de la sp con el nombre, es más fácil con el uso "sp_helptext SPNAME" – Ali