2011-09-07 12 views
5

Po prostu muszę przeszukać wszystkie procedury przechowywane w mojej bazie danych, szukając takiej, która zawiera "element" w nazwie. Jakieś pomysły?Jak znaleźć procedury składowane według nazwy?

Byłem majstrować wokół z tego, ale to nie jest całkiem tam jeszcze:

SELECT DISTINCT OBJECT_NAME(ID) FROM SysComments WHERE Text LIKE '%Item%' 
+0

@Aaron, Tak mi chodziło Routine_Name i nie zdawali sobie sprawy, że to, co sugeruje może być przestarzały i super scedowane z lepszych alternatyw. Zrobiłem to jakieś 2 lata temu i pomyślałem, że byłoby to właściwe. Usuwam mój komentarz. –

+1

Zobacz odpowiedź @ Martina. Jeśli chcesz te, w których * definicja * zawiera "element", użyj wyrażenia "WHERE OBJECT_DEFINITION ([object_id]) LIKE"% item% ";'. I proszę nie używać syscomments, to nie jest rok 2000. :-) –

+0

Możliwy duplikat [Znajdź zapisaną procedurę według nazwy] (http://stackoverflow.com/questions/3574244/find-stored-procedure-by-name) – nathanchere

Odpowiedz

4

Aby znaleźć te, które zawierają ciąg „Item” w nazwie.

select schema_name(schema_id) as [schema], 
     name 
from sys.procedures 
where name like '%Item%' 
2

This może również pomóc w tej sprawie. Działa również wtedy, gdy istnieją bazy danych z różnymi sortowaniami. Możesz znaleźć procedurę, podając dokładną nazwę procedury lub jej część.

2

można wykorzystywać nową kwerendę w Server 2008:

use dbName 
go 

print object_definition(object_id('storedProcedureName')) 

Dostaniesz zawartość procedury.

1

W SQL można używać tylko symboli wieloznacznych% i _. Jeśli chcesz bardziej zaawansowane wyszukiwanie, możesz użyć SchemaCrawler. SchemaCrawler może wyszukiwać procedury za pomocą wyrażeń regularnych pasujących do nazwy. Możesz nawet wyszukiwać w rutynowej definicji za pomocą wyrażeń regularnych.

Sualeh Fatehi, SchemaCrawler

Powiązane problemy