Uwaga: nie pytam o pełną kontrolę wersji.
Czy istnieje jakiś sposób automatycznego przechowywania historii procedur przechowywanych na serwerze SQL Server.
Podobne do tego, jak Dokumenty Google automatycznie przechowują historię wersji dokumentów, a Wikipedia automatycznie przechowuje historię wersji artykułów.
Nie chcę, aby użytkownicy aktualizujący procedury przechowywane musieli także utrzymywać repozytorium procedur przechowywanych. To za dużo pracy i ludzie tego nie zrobią.
Mam nadzieję, że mogę to włączyć w programie SQL Server ...
(A przez procedury składowane naprawdę mam na myśli funkcje, wyzwalacze itp. Zasadniczo wszystko w ramach Programowalności.)
Opublikowałem na /programming/14522224/how-to-keep-history-of-sql-server-stored-procedure-revisions pierwszy, ponieważ podejrzewam, że uzyska tam więcej wyświetleń.
Odpowiedzi:
Chociaż zgadzam się, że kontrola źródła jest właściwym sposobem, aby to zrobić, rozumiem również, że nie wszystkie środowiska są wystarczająco zdyscyplinowane, aby polegać na tym samym (jeśli w ogóle), i że czasami trzeba wprowadzić bezpośrednie zmiany, aby zachować aplikację uruchom, uratuj klienta, co masz.
Za pomocą wyzwalacza DDL można przechowywać wszystkie wersje w tabeli w osobnej bazie danych (i oczywiście często wykonywać kopię zapasową tej bazy danych). Zakładając, że masz bazę danych narzędzi:
Teraz w twojej bazie danych, najpierw weźmy coś, co nazwiemy „kontrolą początkową” - bieżąca wersja procedur przechowywanych:
Teraz, aby przechwycić kolejne zmiany, dodaj wyzwalacz DDL do bazy danych:
Z czasem łatwiej będzie zobaczyć i porównać zmiany w procedurach, zobaczyć, jak nowe procedury są dodawane do systemu, zobaczyć, jak procedury są upuszczane, i mieć dobry pomysł z kim porozmawiać o którymkolwiek z tych zdarzeń.
Więcej informacji tutaj:
http://www.mssqltips.com/sqlservertip/2085/sql-server-ddl-triggers-to-track-all-database-changes/
źródło
Nie sądzę, aby istniał sposób na automatyczne utrzymanie kodu źródłowego SQL pod kontrolą wersji. Mam na myśli narzędzia Native SQL Server. Myślę, że możesz skończyć z użyciem git lub svn, ale najlepszym rozwiązaniem dla mnie było kupienie Kontroli Źródła Red Gate do utrzymywania baz danych (i procedur przechowywanych) pod kontrolą wersji.
źródło