Czy podczas tworzenia aplikacji z dużą ilością przechowywanych procedur należy przechowywać je w systemie źródłowego (np. Bezpieczne dla źródeł, TFS, SVN)? Jeśli tak, dlaczego? Czy istnieje wygodny sposób na wykonanie tego zadania za pomocą SQL Server Management Studio?Czy należy przechowywać przechowywane procedury SQL w sterowaniu źródłami?
Odpowiedz
Tak. Cały kod powinien być przechowywany w kontroli źródła.
Mówiąc najprościej, kod to kod i błędy się zdarzają. Miło jest móc wrócić i zobaczyć, co się zmieniło w czasie i móc wrócić do tych zmian.
Musimy dodać go ręcznie do systemu kontroli źródła, ale można tworzyć dodatki do serwera Sql Server Management System. Nigdy nie stworzyłem tego, aby automatycznie dodać go do kontroli źródła, ale przypuszczam, że mógłbyś. Ponadto, cały kod jest przechowywany w tabelach sql, więc możesz teoretycznie utworzyć proces lub coś, co przejdzie przez tabelę (y) i pobrać cały kod i zatwierdzić go automatycznie.
Aktualizacja: Zawsze napiszę dodatkowy kod, aby sprawdzić i sprawdzić, czy kod istnieje i czy nie tworzy procedury wypełniania, a następnie faktyczny skrypt zrobić i zmienić procedurę.
IF NOT EXISTS (SELECT * FROM dbo.sysobjects WHERE
id = OBJECT_ID(N'[dbo].[SomeStoredProcedure]') AND
OBJECTPROPERTY(id,N'IsProcedure') = 1)
EXEC sp_executesql N'CREATE PROCEDURE [dbo].[SomeStoredProcedure] AS
SELECT ''SPROC Template'''
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE SomeStoredProcedure
Wykonanie upuszczenia i ponowne utworzenie usunie wszystkie uprawnienia użytkownika, które dla niego skonfigurowałeś.
Powinieneś.
Zgodnie z moją wiedzą, nie istnieje takie narzędzie do automatyzacji tego procesu. Przynajmniej, pięć lat temu, kiedy rozważałem budowę, nie wydawało mi się żadnej konkurencji.
Dostępne są narzędzia, a studio graficzne ma wbudowane funkcje. Jest jednak prawie nieadekwatne. Chcielibyśmy kupić licencję na kod źródłowy do produktu innej firmy i ulepszyć dodatki, których potrzebowaliśmy, aby działał. – JohnFx
Przechowujemy naszych procs w Subversion, cały Twój kod SQL DDL tym powinien być w jakimś repozytorium kontroli źródła
SPS i schematy tabeli dla tej sprawy są wszystkie aktywa, które powinny być pod kontrolą wersji. W idealnym świecie DB będzie zbudowany ze skryptów, w tym danych testowych, jako część procesu CI. Nawet jeśli tak nie jest, posiadanie DB/programisty to dobry model do naśladowania. W ten sposób można wypróbować nowe pomysły w lokalnym piaskownicy bez wpływu na wszystkich, po przetestowaniu zmiany można je sprawdzić.
Studio zarządzania można powiązać z kontrolą źródła, chociaż nie mam doświadczenia to. Zawsze śledziliśmy nasz SP/schemat jako pliki. Studio zarządzania może automatycznie generować skrypty zmian, które są bardzo przydatne, ponieważ upuszczenie/odtworzenie tabeli może być zbyt ciężkie dla każdej tabeli zawierającej dane.
Zdecydowanie tak. Wtedy pojawia się pytanie, w jaki sposób przechowujesz je w kontroli źródła. Czy porzucisz i ponownie utworzysz procedurę przechowywaną lub po prostu zmienisz, czy dodasz uprawnienia na końcu skryptu lub w osobnym skrypcie? Jakiś czas temu pojawił się post o Coding Horror na temat, który uważam za interesujący. Is Your Database Under Version Control?
Procesy SQL również na pewno potrzebują tych samych zabezpieczeń/zalet kontroli wersji, co reszta kodu w projekcie.
Zalecam przechowywanie ich. Nigdy nie wiesz, kiedy będziesz musiał wycofać lub zagłębić się w logikę, którą możesz usunąć.
Oto dobry sposób na łatwe przechwycenie Przechowywanych Proc w pliki, które możesz wrzucić do dowolnej kontroli źródła, której pragniesz ..
Get your database under version control. Sprawdź serię postów napisanych przez Scotta Allena.
Jeśli chodzi o kontrolę wersji, baza danych często jest obywatelem drugiej lub nawet trzeciej klasy. Z tego, co widziałem, zespoły, które nigdy nie myślały o pisaniu kodu bez kontroli wersji w ciągu milionów lat - i słusznie - mogą w jakiś sposób całkowicie zapomnieć o potrzebie kontroli wersji wokół krytycznych baz danych, na których opierają się ich aplikacje. Nie wiem, jak możesz nazwać się inżynierem oprogramowania i zachować prostą twarz, kiedy twoja baza danych nie podlega dokładnie takiemu rygorystycznemu poziomowi kontroli źródła jak reszta twojego kodu. Nie pozwól, aby ci się to przydarzyło. Pobierz bazę danych pod kontrolą wersji.
CAŁKOWICIE POZYTYWNIE BEZ PYTAŃ BEZ WYJĄTKÓW W KAŻDEJ PROBLEMIE PRZEZ WSZECHŚWIATNI TAK!
sooo ... mówisz, że myślisz, że to dobry pomysł? :) – kemiller2002
.. nie umieszczać zbyt drobnego punktu na nim. – ConcernedOfTunbridgeWells
Ale czy czujesz się mocno w taki czy inny sposób? :) – NTDLS
Jak powiedzieli inni, tak powinni być.
Nie wiem, jak to zrobić w SQL Server Management Studio, ale jeśli korzystasz również z Visual Studio, projekty baz danych to świetny sposób na zarządzanie tym.
Na pewno powinieneś.
W MS SQL 2008
można to zrobić right from Management Studio.
Absolutnie. Pozytywnie.
Zestaw SP jest interfejsem, który prawdopodobnie będzie modyfikowany częściej niż zmiany strukturalne. A ponieważ SPs zawierają logikę biznesową, zmiany powinny być przechowywane w kontroli wersji, aby śledzić modyfikacje i korekty logiki.
Przechowywanie tych w kontroli wersji jest symptomem dojrzałości organizacyjnej na poziomie kodowania i jest najlepszą praktyką.
Przechowywanie procedur przechowywanych to świetny pomysł. Ale to ból. W jaki sposób dostajesz te wszystkie rzeczy do działalności wywrotowej? Możesz to zrobić ręcznie, ale wtedy jest nudny i kończysz, nie robiąc tego w ogóle.
Używam narzędzia z subsonic project.
sonic.exe version /server servername /db databasename /out outputdirectory
To polecenie zapisuje wszystko w 2 plikach tekstowych. Jedna zawiera schemat bazy danych, przechowywane procs, konta użytkowników, ograniczenia i klucze podstawowe. Drugi zawiera dane.
Teraz, gdy masz już te dwa pliki, możesz użyć subversion (cvs, source safe), aby przenieść go do kontroli źródła.
Więcej informacji na using The Command Line Tool (SubCommander)
SQL jest kod. Cały kod należy do kontroli kodu źródłowego.
To wszystko.
Jeśli nie możesz tego po prostu wyjaśnić, nie rozumiesz tego wystarczająco dobrze. Einstein – SheldonH
Istnieją metody w SMO do generowania skryptów, jeśli wolisz kodować własne narzędzie skryptowe.
http://www.sqlteam.com/article/scripting-database-objects-using-smo-updated
Jeśli nie używasz zarządzania aktywami obok kontroli źródła, wtedy mówię rzucić wszystko w kontroli źródła. Obrazy, dokumenty tekstowe, cały shebang. Nie można go zgubić, zawsze można odwrócić wszelkie zmiany i jeśli jakaś maszyna ulegnie awarii - nic nie zostanie utracone.
Zdecydowanie.
- 1. Czy pliki raportów pamięci podręcznej MS (* .rdl.data) powinny być przechowywane w sterowaniu źródłami?
- 2. Jeśli indziej w procedury przechowywane SQL Server
- 3. Funkcje a procedury przechowywane
- 4. Czy procedury przechowywane blokują tabele/wiersze?
- 5. Przechowywane procedury i funkcje
- 6. Usuń wszystkie przechowywane procedury naraz
- 7. Procedury przechowywane w strukturze jednostki
- 8. Procedury i uprawnienia przechowywane w programie SQL Server
- 9. Czy procedury przechowywane mogą zwracać zestaw wyników?
- 10. Kod Pierwsze migracje i procedury przechowywane
- 11. Przechowywane procedury w Pythonie dla PostgreSQL
- 12. Procedury przechowywane w MYSQL, jeśli instrukcja Problem
- 13. MySQL przechowywane procedury z if
- 14. MySQL: Widoki a procedury przechowywane
- 15. Jak wyświetlić wszystkie niesystemowe procedury przechowywane?
- 16. C#/SQL Pobierz wszystkie przechowywane procedury i ich kod
- 17. Parsować wszystkie procedury przechowywane w bazie danych
- 18. Czy procedury skryptowe JavaScript przechowywane w MongoDB są szybsze?
- 19. Zapisz wynik procedury przechowywane w tabeli zmiennej
- 20. OpenGL - Czy należy przechowywać atrybuty/jednolite lokalizacje?
- 21. Czy Entity Framework Code obsługuje najpierw procedury przechowywane?
- 22. Czy należy przechowywać rekordy zwrotu w wartości dodatniej lub ujemnej?
- 23. W jaki sposób skryptować procedury przechowywane w plikach?
- 24. Kiedy należy przechowywać funkcję w zmiennej?
- 25. Wytworny wywołanie procedury przechowywane i mapa wynik do klasy
- 26. Jak zidentyfikować wszystkie procedury przechowywane odnoszące się do konkretnej tabeli
- 27. Korzystanie z edycji - scalanie - zatwierdzanie przepływu pracy w sterowaniu źródłami TFS
- 28. Właśnie zainstalowałem program Visual Studio 2012 i nie widzę opcji Znajdź w sterowaniu źródłami> Stan
- 29. SSMS przestał wczytać moje procedury przechowywane po aktualizacji
- 30. Samouczek Rubiego, jak pisać procedury przechowywane dla PostgreSQL?
Dodałem również definicje tabel, w tym indeksy, klucze, itp. Oraz wszelkie dane "wyszukiwania", które nie powinny powstać w ciągu całego okresu użytkowania aplikacji. –