Esiste un modo per trovare in SQL Server Management Studio stored procedure per nome o per parte del nome? (Il contesto di database attivo)Trova stored procedure per nome
Grazie per l'aiuto
Esiste un modo per trovare in SQL Server Management Studio stored procedure per nome o per parte del nome? (Il contesto di database attivo)Trova stored procedure per nome
Grazie per l'aiuto
È possibile utilizzare:
select *
from
sys.procedures
where
name like '%name_of_proc%'
se è necessario il codice è possibile osservare nella tabella 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%'
Modifica Aggiornamento:
puoi anche utilizzare la versione standard ansi
SELECT *
FROM
INFORMATION_SCHEMA.ROUTINES
WHERE
ROUTINE_NAME LIKE '%name_of_proc%'
Supponendo che siete in Esplora oggetti Dettagli (F7) che mostra l'elenco delle stored procedure, fare clic sul pulsante Filtri e inserire il nome (o il nome parziale).
Grazie mille non sapevo della cosa filtro in qualche modo non ho mai visto quel pulsante. –
Questo funziona per tabelle e viste (tra l'altro), così, non solo 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
Vi dà anche il nome dello schema che sarà utile in qualsiasi non- database banale (ad esempio quello in cui è necessaria una query per trovare una stored procedure per nome).
Migrando un'app legacy da sql 2005 a 2016 il mio script ha ottenuto "sintassi errata vicino a '@errorMessage', che non è stato di grande aiuto. Quando ho eseguito lo stesso sql in SSSM, è stato aggiunto "in procedure 'some_name'", ma non c'era alcuna stored procedure in alcun luogo! Si è rivelato un trigger e la tua richiesta l'ha trovato. Grazie! – mickeyf
Trucchetto molto accurato Mi imbatto in tentativi di SQL injection, in object explorer nella casella di ricerca basta usare i caratteri percentuali, e questo cercherà TUTTO le stored procedure, funzioni, viste, tabelle, schemi, indici ... I stanco di pensare di più :)
È possibile utilizzare questa query:
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')
Come si può vedere, si può fare ricerca all'interno del corpo della stored procedure anche.
@ardi, di nuovo sei qui! : <> – Ali
Se si desidera ottenere il testo della sp con il nome, è più semplice con l'uso "sp_helptext SPNAME" – Ali