Jakie zapytanie może zwrócić nazwy wszystkich procedur przechowywanych w bazie danych SQL Server
Jeśli zapytanie mogłoby wykluczyć systemowe procedury składowane, byłoby to jeszcze bardziej pomocne.
sql-server
tsql
p.campbell
źródło
źródło
źródło
dbo.sys*
widoków. To zapytanie również: odfiltrowuje procedury składowane CLR, nie odfiltrowuje przechowywanych procesów systemowych i zwraca [typ], gdy wiadomo, że [typ] zawsze będzie miał wartość „P”, ponieważ jest to warunek GDZIE.Z mojego zrozumienia „preferowaną” metodą jest użycie tabel information_schema:
źródło
Poniższe spowoduje zwrócenie wszystkich procedur w wybranej bazie danych
źródło
Możesz wypróbować to zapytanie, aby uzyskać procedury składowane i funkcje:
źródło
Jeśli używasz programu SQL Server 2005, następujące funkcje będą działać:
źródło
Możesz użyć jednego z poniższych zapytań, aby znaleźć listę procedur przechowywanych w jednej bazie danych:
Zapytanie 1:
Zapytanie 2:
Jeśli chcesz znaleźć listę wszystkich SP we wszystkich bazach danych , możesz użyć poniższego zapytania:
źródło
Wybierz Wszystkie przechowywane procedury i widoki
źródło
Może to również pomóc w liście procedur oprócz procedur systemowych:
źródło
sys.all_objects
ponieważ filtrujeszis_ms_shipped=0
. Może zawierać wyzwalacze DDL, ale zostaną one odfiltrowanetype='p'
. Równie dobrze możesz użyćsys.objects
.Niestety
INFORMATION_SCHEMA
nie zawiera informacji o procesach systemowych.źródło
sys.procedures where is_ms_shipped = 0
? I dlaczego miałbyś uruchamiać funkcjęobjectproperty(object_id, N'IsMSShipped')
dla każdego wiersza, gdy istnieje poleis_ms_shipped
zawierające tę wartość? Po tych samych liniach, po co ponownie uruchamiać tę funkcję, skoro[type] IN ('P', 'PC')
robi to samo? Ta metoda jest niepotrzebnie skomplikowana i nieefektywna.Tylko imiona:
źródło
Poprawiłem doskonały post LostCajun powyżej, aby wykluczyć procedury składowane w systemie. Usunąłem również „Wypakuj”. z kodu, ponieważ nie mogłem zrozumieć, do czego to służy i dało mi to błędy. Instrukcja „pobierz dalej” wewnątrz pętli również wymagała klauzuli „do”.
źródło
najlepszym sposobem na uzyskanie obiektów jest użycie sys.sql_modules. możesz znaleźć wszystkie rzeczy, które chcesz z tej tabeli i połączyć tę tabelę z inną tabelą, aby uzyskać więcej informacji przez object_id
źródło
źródło
dbo.sys*
widoków. To zapytanie odfiltrowuje również procedury składowane CLR.Napisałem ten prosty tsql, aby wyświetlić tekst wszystkich procedur przechowywanych. Podaj nazwę bazy danych w polu.
źródło
To da tylko nazwy procedur przechowywanych.
źródło
To pokaże wszystkie procedury przechowywane i kod:
źródło
Wymień wszystkie rzeczy, które chcesz
W Sql Server 2005, 2008, 2012:
LUB
źródło
sp_tables
. Ponadto „PROCEDURA” nie jest prawidłową opcją dlasp_tables
. Jedyne opcje@table_type
to: „SYSTEM TABLE”, „TABLE” i „VIEW”.To zwróci wszystkie nazwy sp
źródło
[type]
powinno być[type] IN ('P', 'PC')
odfiltrowanie wszelkich przechowywanych procesów CLR, które potencjalnie tam są.Wypróbuj to łącze codeplex, to narzędzie pomaga zlokalizować całą procedurę przechowywaną z bazy danych SQL.
https://exportmssqlproc.codeplex.com/
źródło
źródło
Będzie to działać na mssql.
źródło
Wybierz listę procedur przechowywanych w serwerze SQL. Więcej informacji można znaleźć tutaj: https://coderrooms.blogspot.com/2017/06/select-list-of-stored-procedure-in-sql.html
źródło
PaymentDetails
tabeli. OP chce listy faktycznych procedur przechowywanych.