Czy istnieje sposób, w jaki mogę znaleźć miejsce zapisywania procedur składowanych, aby po prostu skopiować pliki na mój pulpit?W jaki sposób skryptować procedury przechowywane w plikach?
Odpowiedz
Przechowywane procedury nie są przechowywane jako pliki, są one przechowywane jako metadane i wystawia nam peons (dzięki Michael za przypomnienie o sysschobjs
) w widokach katalogu sys.objects
, sys.procedures
, sys.sql_modules
itp dla procedury przechowywane indywidualnej , możesz zapytać o definicję bezpośrednio, korzystając z tych widoków (co najważniejsze: sys.sql_modules.definition
) lub używając funkcji OBJECT_DEFINITION()
jako Nicholas pointed out (chociaż jego opis syscomments
nie jest całkowicie dokładny).
Aby wyodrębnić wszystkie zapisane procedury do pojedynczego pliku, jedną z opcji będzie otwarcie Eksploratora obiektów, rozwinięcie your server > databases > your database > programmability
i zaznaczenie węzła stored procedures
. Następnie naciśnij F7 (Widok>Object Explorer Details). Po prawej stronie wybierz wszystkie żądane procedury, a następnie kliknij prawym przyciskiem myszy, script stored procedure as > create to > file
. Spowoduje to utworzenie jednego pliku ze wszystkimi wybranymi procedurami. Jeśli chcesz mieć pojedynczy plik dla każdej procedury, możesz użyć tej metody, wybierając tylko jedną procedurę na raz, ale może to być uciążliwe. Można również użyć tej metody do skryptowania wszystkich procedur związanych z rachunkowością do jednego pliku, wszystkich procedur związanych z finansami do innego pliku itp.
Łatwiejszym sposobem wygenerowania dokładnie jednego pliku na procedurę składowaną byłoby użycie Generate Scripts wizard - ponownie, zaczynając od Eksploratora obiektów - kliknij prawym przyciskiem myszy twoją bazę danych i wybierz: Tasks > Generate scripts
. Wybierz opcję Select specific database objects
i zaznacz pole najwyższego poziomu Stored Procedures
. Kliknij Następny. Na wyjściu wybrać Save scripts to a specific location
, Save to file
i Single file per object.
Te kroki mogą się nieznacznie różnić w zależności od używanej wersji SSMS.
Procedury przechowywane nie są "przechowywane" jako osobny plik, który można przeglądać i czytać bez bazy danych. Jest przechowywany w bazie danych, do której należy, w zestawie tabel systemowych. Tabela zawierająca definicję nosi nazwę [sysschobjs], która nie jest nawet dostępna (bezpośrednio) dla użytkowników końcowych.
Aby pobrać definicję tych procedur składowanych z bazy danych, chciałbym skorzystać z tej kwerendy:
select definition from sys.sql_modules
where object_id = object_id('sp_myprocedure')
Ale lubię odpowiedź Aarona. Daje inne fajne opcje.
To zależy od wersji programu SQL Server, z którego korzystasz. W przypadku najnowszych wersji kod źródłowy procedur przechowywanych jest dostępny w widoku systemowym sys.sql_modules
, ale prostszym sposobem uzyskania źródła dla procedury składowanej lub funkcji zdefiniowanej przez użytkownika (UDF) jest użycie funkcji systemowej object_definition()
(której definicja widoku to sys.ssql_modules
wykorzystuje):
select object_definition(object_id('dbo.my_stored_procedure_or_user_defined_function'))
W starszych wersjach, procedury przechowywane i UDF była dostępna za pośrednictwem teraz już nieaktualnych widok System widzenia sys.syscomments
.
aw jeszcze starszych wersjach SQL Server, było dostępne w tabeli systemowej `dbo.syscomments'
Należy notdd że w zależności od dostępności i jak baza danych jest skonfigurowany, źródło może nie być dostępne dla ciebie lub może być zaszyfrowane, co czyni go niezbyt użytecznym.
Źródło można również uzyskać programowo przy użyciu SMO
(Sql Server Management Objects). http://technet.microsoft.com/en-us/library/hh248032.aspx
'syscomments' był ważny w 2000 roku, ale nie był dostępny jako' sys.syscomments' aż do SQL Server 2005. 'sys.sql_modules' był dostępny od SQL Server 2005, więc nie było luki między używaniem' dbo.syscomments 'i przełączenie na' sys.sql_modules'. –
- 1. Procedury przechowywane w strukturze jednostki
- 2. Przechowywane procedury i funkcje
- 3. Funkcje a procedury przechowywane
- 4. MySQL: Widoki a procedury przechowywane
- 5. Zapisz wynik procedury przechowywane w tabeli zmiennej
- 6. Przechowywane procedury w Pythonie dla PostgreSQL
- 7. Procedury przechowywane w MYSQL, jeśli instrukcja Problem
- 8. Jeśli indziej w procedury przechowywane SQL Server
- 9. Parsować wszystkie procedury przechowywane w bazie danych
- 10. Usuń wszystkie przechowywane procedury naraz
- 11. MySQL przechowywane procedury z if
- 12. W jaki sposób fizycznie przechowywane są dane HTML5 WebStorage?
- 13. W jaki sposób zmienne są przechowywane w pamięci w rekursji?
- 14. W jaki sposób powinny być przechowywane słowniki python w pytables?
- 15. W jaki sposób przechowywane są daty w Oracle?
- 16. W jaki sposób dane są przechowywane w schowku Windows
- 17. W jaki sposób NULL są przechowywane w bazie danych?
- 18. W jaki sposób przechowywane są obiekty wartości w bazie danych?
- 19. W jaki sposób są fizycznie przechowywane ciągi w JavaScript
- 20. W jaki sposób dane są przechowywane na serwerze SQL?
- 21. W jaki sposób nazwy zmiennych są przechowywane i mapowane wewnętrznie?
- 22. w jaki sposób dane mysql są przechowywane na dysku?
- 23. Czy należy przechowywać przechowywane procedury SQL w sterowaniu źródłami?
- 24. Procedury i uprawnienia przechowywane w programie SQL Server
- 25. Jak wyświetlić wszystkie niesystemowe procedury przechowywane?
- 26. Kod Pierwsze migracje i procedury przechowywane
- 27. Czy procedury przechowywane mogą zwracać zestaw wyników?
- 28. Czy procedury przechowywane blokują tabele/wiersze?
- 29. W jaki sposób mogę układać procedury obsługi autoryzacji Plack?
- 30. Czy procedury skryptowe JavaScript przechowywane w MongoDB są szybsze?
Masz na myśli skrypt SP? – christiandev
Są przechowywane w bazie danych - nie znajdują się w ich własnych plikach. –
Użyj [Generate SQLServer Scripts Wizard] (http://technet.microsoft.com/en-us/library/ms186996 (v = sql.105) .aspx) w SSMS, aby wykonać skrypty procedur składowanych. – AgentSQL