Czy zna ktoś sposób na zaktualizowanie "hurtem" wszystkich procedur składowanych znajdująch się z bazie danych (MS SQL)?
Mam napisany program, który działa już u klienta ale musiałem dokonać wielu poprawek min. w procedurach składowanych. Wiem, że można je edytować każdą osobno ale procedur jest wiele i mogłem się pogubić gdzie i co poprawiałem.
Dlatego szukam sposobu aby zrobić jakiś skrypt dla wszystkich procedur i nadpisać stare procedury nowymi procedurami.
Zna ktoś jakiś sposób na to?
Wystarczy przygotować skrypt zawierający nowe wersje procedur.
Skrypt powinien mieć postać:
ALTER PROCEDURE dbo.Proc1
BEGIN
--tresc procedury
END;
GO;
ALTER PROCEDURE dbo.Proc2
BEGIN
--tresc procedury
END;
GO;
--i tak dalej...
Tylko to będzie taki mega skrypt, w którym można się pomylić.
Czy nie ma w np. Menagment Studio jakiejś opcji, która przygotuje taki skrypt (gotowiec)?
Każda baza MSSQL ma specjalny schemat INFORMATION_SCHEMA, który zawiera metadane o każdym obiekcie w bazie danych, w tym jego nazwę i definicję. Jeżeli chcesz odczytać definicję procedury wystarczy odczytać INFORMATION_SCHEMA.ROUTINES gdzie masz pola ROUTINE_NAME oraz ROUTINE_DEFINITION, które przechowują kolejno nazwę i definicję procedury. Mając taką wiedzę, wystarczy napisać prostego SELECT-a do tego schematu i "złożyć" sobie skrypt.
Jeżeli potrzebujesz po prostu wyeksportować wszystkie lub wybrane procedury, bez konieczności nanoszenia na nich jakiś własnych poprawek lub odfiltrowania w jakiś wyszukany sposób to po prostu kliknij w SSMS na swoją bazę PPM i wybierz Task->Generate Scripts.
Dzięki za pomoc, o coś takiego mi właśnie chodziło.
Pozdrawiam