it-swarm.dev

Dlaczego powinienem używać Visual Studio 2010 zamiast SSMS do tworzenia moich baz danych?

Visual Studio 2010 wprowadza projekty baz danych i całą gamę powiązanych funkcji, które rzekomo ułatwiają tworzenie baz danych. Przez wiele lat korzystałem z programu SQL Server Management Studio (SSMS), aby bez problemu opracowywać bazę danych.

  • Dlaczego powinienem zawracać sobie głowę VS2010, gdy SSMS działa dla mnie? Co konkretnie robi to lepiej niż SSMS?
  • Ale być może moje założenie jest niepoprawne, a SSMS wciąż przebija VS pod kątem rozwoju bazy danych. Jeśli tak, to w jaki konkretny sposób jest to prawdą?
42
Nick Chammas

Szczerze mówiąc, byłem trochę rozczarowany VS2010. Myślę, że oldskulowy skrypt tworzenia tabel i plików dla procedur przechowywanych jest łatwiejszy w obsłudze. Jeśli potrzebujesz zarządzania schematem, możesz uzyskać Redgate SQL Compare Pro za kilkaset dolarów.

Jeśli naprawdę potrzebujesz narzędzia do modelowania baz danych, to Powerdesigner lub nawet Erwin wykonuje znacznie lepszą pracę, chociaż nie są one szczególnie tanie.

Chociaż wolę SSMS, użyłem obu. Niektóre zalety i wady:

  • SSMS ma interfejs użytkownika, który „po prostu działa” dobrze w programowaniu SQL. Samo budowanie i używanie skryptów do tworzenia jest znacznie wygodniejsze niż obręcze VS2010, które zmuszają do przeskakiwania. Znacznie bardziej elastyczny (+ SSMS).

  • VS2010 ma podstawowe zarządzanie schematem (tj. Generowanie skryptów różnic/łatek) (+ VS2010). Jednak nie jest tak dobrze i ma pewne wady. Na przykład dopasowuje ograniczenia dotyczące nazwy. Jeśli masz zaznaczone lub domyślne ograniczenia w kolumnie bez nazywania ich, SQL Server generuje losową nazwę za scenami. Spowoduje to zamieszanie VS2010, jeśli skrypt zostanie zainstalowany na innym komputerze, ponieważ ograniczenia mogą mieć różne nazwy. Redgate jest tańszy i lepszy. (+ VS2010, ale wadliwe).

  • VS2010 jest naprawdę niezręczny - musisz mieć jeden plik dla każdej tabeli lub innego obiektu DB. Zasadniczo musisz robić rzeczy w sposób VS2010, co jest dość kłopotliwe. (- VS2010)

  • VS2010 jest również nieco delikatny, a integracja kontroli źródła jest niestabilna. Nawet w prostej bazie danych każda tabela, ograniczenie, procedura przechowywana, indeks i inny obiekt bazy danych jest własnym plikiem. Pliki są dodawane do projektu przez cały czas, znacznie szybciej niż typowy projekt programistyczny z (powiedzmy) C #. Dzięki optymistycznej współbieżności ma tendencję do dyskretnego usuwania plików z projektu, gdy zameldowania nie są zsynchronizowane. Nawet przy dobrej dyscyplinie zespołowej informacje zwrotne z interfejsu użytkownika dotyczące statusu są bardzo słabe. Byłoby to katastrofą w złożonym modelu. (-VS2010 - Prawie uważam, że jest to błąd zatrzymujący show w dużym projekcie).

  • SSMS pochodzi z SQL Server - nie można pobić ceny (+ SSMS).

  • VS2010 nadal nie ma odpowiedniego repozytorium, takiego jak (powiedzmy) PowerDesigner lub Oracle Designer. Nie można łatwo wykonać zapytania do modelu danych bez instalacji go w bazie danych. (- VS2010).

Ogólnie rzecz biorąc, oceniłbym VS2010 na B-. Niezdarny był przy stosunkowo prostym projekcie bazy danych z dwiema tabelami faktów i około 15 wymiarami.

Największy model danych, jaki kiedykolwiek stworzyłem, dotyczył systemu zarządzania sprawami sądowymi, który miał około 560 tabel. Nie polecałbym VS2010 dla projektu o takiej wielkości (zrobiłem to na Oracle Designer). Zasadniczo stara się być sprytny, a paradygmat nie działa tak dobrze. Lepiej jest z najlepszym narzędziem do modelowania, takim jak PowerDesigner lub po prostu ręcznie tworzyć skrypty tabel.

SSMS jest prosty i niezawodny, ale ręczny. Masz prawie nieskończoną kontrolę nad tym, jak chcesz zarządzać modelem. W połączeniu z menedżerem schematów, takim jak Redgate SQL Compare i być może przyzwoitym narzędziem do modelowania, takim jak PowerDesigner, masz znacznie lepszy pakiet niż VS2010.

Podsumowanie Nie jestem pewien, czy mógłbym zacytować jakieś zabójcze funkcje lub korzyści oprócz (być może) integracji z rozwiązaniami VS zawierającymi inne projekty. Jeśli masz już wersję Premium lub Ultimate VS2010, otrzymujesz nieco wadliwe narzędzie do tworzenia baz danych wraz z łańcuchem narzędzi .Net. Zintegruje projekty DB z rozwiązaniem VS, dzięki czemu można go używać do tworzenia przynajmniej skryptów wdrażania sproc.

VS nie ma jednak żadnego narzędzia do modelowania, więc PowerDesigner, a nawet Erwin jest lepszy pod tym względem. Zarządzanie schematem Redgate jest znacznie lepsze, a SQL Compare Pro jest dość tani (około 400 £ IIRC). IMHO SSMS działa znacznie lepiej w programowaniu T-SQL, ale na pewno możesz to zrobić za pomocą VS2010.

VS2010 premium nie jest dużo tańszy niż najlepsze w swojej klasie narzędzie do modelowania baz danych, a VS2010 ultimate jest co najmniej tak samo drogi. Kosztem ścisłej integracji z projektem VS prawdopodobnie lepiej radziłbyś sobie z narzędziami innych firm.

Alternatywa

Wydaje mi się, że nie należy zbytnio zrzucać VS2010 bez sugerowania przynajmniej jednej alternatywy i przedstawienia jej zalet i wad. Na potrzeby tego zakładam duży projekt. Chociaż obecnie wykonuję głównie prace związane z zakupem, jestem zaangażowany w projekt na ponad 100 lat pracowniczych, w którym wykonałem model danych (i niektóre prace rozwojowe) i kilka innych w przedziale 10 lat pracowniczych, gdzie głównie pracowałem jako analityk lub programista. Obecnie pracuję głównie na systemach hurtowni danych, ale większe projekty były głównie aplikacjami. W oparciu o moje doświadczenia z różnymi narzędziami, oto kilka sugestii dotyczących alternatywnego łańcucha narzędzi:

  • VS2010 Professional lub nowszy. Możesz lub nie chcesz korzystać z funkcji zarządzania projektami premium lub ultimate.
  • Subversion, AnkhSVN i TortoiseSVN - lepszy niż TFS każdego dnia i dobrze gra z VS. Jest również całkiem podatny na wycofywanie się z lokalnych repozytoriów dla równoczesnych prac rozwojowych.
  • SSMS dla rozwoju T-SQL - Zarządzanie projektami i SC Integracja nie jest tak dobra, ale działa dobrze dla prac rozwojowych DB.
  • Projekt VS2010 DB do śledzenia plików sproc - nieco niezdarny, jeśli używasz SSMS, ale działa OK. Wygeneruje również skrypty wdrażania.
  • PowerDesigner - znacznie lepszy w modelowaniu bazy danych i zarządzaniu elementami schematu DB. Robi również UML, jeśli chcesz mocno wejść w MDA. Jeśli chcesz kierować projektem DB z modelu obiektowego, możesz zamiast tego rozważyć Sparx EA. Wykonuje najlepszą pracę Meta CASE (rozszerzalnego modelu meta) dowolnego narzędzia CASE, jakie widziałem, chociaż modelowanie bazy danych pozostawia wiele do życzenia.
  • SQL Compare pro - służy do generowania skryptów łat DB lub testowania ręcznych skryptów łat (patrz 1 poniżej).
  • Framemaker - Znacznie bardziej stabilne i lepsze funkcje pracy grupowej niż Word, jeśli masz wielu analityków pracujących nad specyfikacją. Obsługuje także włączenie warunkowe, dzięki czemu można mieć wersje wersji specyfikacji z ukrytymi zmianami WIP. MIF i MML ułatwiają integrację dokumentów API i słowników danych w dokumentach specyfikacji. Przydaje się to, ponieważ można je odsyłać w specyfikacji. Zakotwiczenia etykiet tekstowych zapewniają stabilność odniesień podczas ponownego importu. Możesz także użyć TCS do pojedynczego źródła dokumentu w formacie PDF, HTML i CHM.
  • Śledzenie problemów z oprogramowaniem typu open source - Wiele dobrych programów typu open source (np. TRAC, Bugzilla, żeby wymienić tylko kilka, których użyłem). Te o otwartym kodzie źródłowym są łatwiejsze do modyfikacji lub integracji z niestandardowym przepływem pracy i nie można pobić ceny.
  • NUnit lub inne narzędzia testujące - wszelkie automatyczne narzędzia testujące są najbardziej odpowiednie dla twoich wymagań.
  • Wszystko oprócz projektu stwardnienia rozsianego - uważane za szkodliwe. Projekt MS jest skierowany do wewnątrz i zmusza plany projektu do modelu, który nie reprezentuje niepewności, ryzyka lub zależności od interesariuszy lub innych stron trzecich (patrz 2 poniżej).

Plusy: Lepsze modelowanie bazy danych i zarządzanie schematem niż VS2010, lepszy system kontroli wersji, łatwiejsze dostosowywanie przebiegu pracy kompilacji i projektu, lepsze zarządzanie specyfikacjami i dokumentacją.

Wady: Więcej wysiłku na rzecz integracji narzędzi, ograniczona integracja DB w procesie kompilacji.

Założenia: Zakłada, że ​​kontrola procesu zmiany/wydania jest ważniejsza niż zautomatyzowane lub ściśle zintegrowane zarządzanie wydaniami schematów DB. Zakłada również, że zautomatyzowane zarządzanie schematem DB nie jest w 100% niezawodne.

Niezbyt zaawansowana technologicznie lub zręcznie zintegrowana, ale w przypadku złożonego projektu prawdopodobnie bardziej interesuje Cię kontrola niż urocze zautomatyzowane funkcje. Twierdzę, że lepiej jest ci z zestawem najlepszych narzędzi rasy i bez względu na to, jaka kompilacja domowego napoju i skrypty testowe są konieczne, aby je zintegrować. Po prostu staraj się, aby kompilacja (a) była stosunkowo prosta do zrozumienia i (b) w pełni zautomatyzowana.

  1. Kontrola jakości łatek DB. Na dużym schemacie możesz chcieć mieć ręczny proces łatania dla aktywnych systemów, szczególnie jeśli łatki dotyczą migracji danych. Na przykład może być pożądane posiadanie skryptów przechodzenia do przodu i do tyłu, aby w razie potrzeby wycofywać zmiany. W takim przypadku będziesz chciał mieć możliwość sprawdzenia, czy łatka faktycznie działa poprawnie. Jeśli zarządzasz schematem bazy danych w repozytorium, możesz przetestować skrypty, konfigurując je przed bazami danych i generując referencyjną bazę danych z repozytorium. Uruchomienie skryptu poprawki w poprzedniej bazie danych powinno zsynchronizować go z modelem repozytorium. Aby to sprawdzić, można użyć narzędzia do porównywania schematów.

  2. Wykonałem ostatnio dużo więcej prac związanych z hurtownią danych i integracją niż tworzenie aplikacji na zamówienie, więc spotykam się z tym częściej niż zespół programistów w większości przypadków. Jednak narzędzia i metody zarządzania projektami mają bardzo kiepską rolę w zarządzaniu zewnętrznymi interesariuszami. W projekcie integracyjnym, takim jak hurtownia danych, naprawdę chcę zobaczyć narzędzie do zarządzania projektami, które naprawdę przesuwa zależności zewnętrzne (tj. Te, których nie kontroluję) w obliczu zarządzania programem. W każdym nietrywialnym projekcie integracyjnym zewnętrzne zależności są zdecydowanie największymi motorami zmarnowanego czasu.

Od samego początku zastanawiałem się, jak ustrukturyzować odpowiedź na to pytanie. Jest to trudne, ponieważ w przypadku VS2010 nie chodzi o opis funkcji i zalet tego narzędzia. Chodzi o przekonanie czytelnika, aby dokonał zasadniczej zmiany w podejściu do tworzenia baz danych. Niełatwe.

Odpowiedzi na to pytanie od doświadczonych specjalistów od baz danych, z mieszanką w tle obejmującą DBA, programistę/dba i oba OLTP i hurtownie danych. Nie jest dla mnie opłacalne podejście do każdego aspektu bazy danych rozwój w jednym posiedzeniu, więc postaram się uzasadnić konkretny scenariusz.

Jeśli twój projekt spełnia te kryteria, uważam, że istnieje przekonujący argument za VS2010:

  • Twój zespół używa VS2010 do tworzenia aplikacji.
  • Twój zespół używa TFS do kontroli źródła i zarządzania kompilacją.
  • Twoja baza danych to SQL Server.
  • Twój zespół ma już lub jest zainteresowany automatycznymi testami VS.

Jeśli oceniasz VS2010 pod kątem rozwoju bazy danych, twoją biblią będzie Visual Studio Database Guide z Visual Studio ALM Rangers . Wszelkie cytaty, które nie zawierają odnośników, będą pochodzić z tego dokumentu.

Idziemy więc ...

Dlaczego proces tworzenia bazy danych różni się od tworzenia aplikacji?

Dane. Gdyby nie te nieznośne dane, tworzenie baz danych byłoby uciążliwe. Możemy po prostu ZROBIĆ wszystko na każdym wydaniu i zapomnieć o tym kłopotliwym zarządzaniu zmianami.

Istnienie danych komplikuje proces zmiany bazy danych, ponieważ dane są często migrowane, przekształcane lub ponownie ładowane, gdy zmiany są wprowadzane przez działania programistyczne, które wpływają na kształt tabel bazy danych lub innych schematów danych. W trakcie tego procesu zmian dane dotyczące jakości produkcji i stan operacyjny muszą być chronione przed zmianami, które mogą zagrozić jego integralności, wartości i przydatności dla organizacji.

Co jest nie tak z SSMS?

Z jakiegoś powodu nazywa się to SQL Server Management Studio. Jako samodzielne narzędzie zarządzanie wysiłkami programistycznymi jest niepraktyczne jeśli będziesz przestrzegać przyjętych najlepszych praktyk.

W przypadku samych skryptów, aby w sposób znaczący zastosować ustalone praktyki kontroli źródła w twoim rozwoju, będziesz musiał zachować obie definicje obiektów (np. Skrypt CREATE TABLE) ORAZ zmieniać skrypty (np. ALTER TABLE) ORAZ ciężko pracować, aby upewnić się, że pozostają zsynchronizowane.

Łańcuch wersji zmian w tabeli dość szybko staje się głupi. Bardzo uproszczony przykład:

-- Version 1
CREATE TABLE dbo.Widget (WidgetId INT, Name VARCHAR(20))

-- Version 2
CREATE TABLE dbo.Widget (WidgetId INT, Name VARCHAR(20), Description VARCHAR(50))

-- Version 3
CREATE TABLE dbo.Widget (WidgetId INT, Name VARCHAR(20), Description VARCHAR(100))

W wersji 3 skrypt zmiany bazy danych zawiera:

ALTER TABLE dbo.Widget ADD Description VARCHAR(50)
ALTER TABLE dbo.Widget ALTER COLUMN Description VARCHAR(100)

Jeśli wersja na żywo tej bazy danych to wersja 1, a nasza następna wersja to wersja 3, poniższy skrypt byłby wszystkim, czego potrzeba, ale zamiast tego zostaną wykonane obie instrukcje ALTER.

ALTER TABLE dbo.Widget ADD Description VARCHAR(100)

5-letnie 4-tygodniowe sprinty składają się na zabawne skrypty wersji i wymagają dodatkowej obsługi, aby zminimalizować wpływ na czas wdrażania.

Czy coś jest nie tak z SSMS? Nie, nadaje się do tego, do czego służy, administrowania programem SQL Server i zarządzania nim. Nie udaje nawet, że pomaga deweloperowi bazy danych w (czasami) bardzo złożonym zadaniu zarządzania zmianą.


Jeśli nie możesz zbudować każdej wersji bazy danych ze źródła i uaktualnić do dowolnej przyszłej wersji, kontrola źródła jest zepsuta. Jeśli nie uważasz, zapytaj Erica Sink .


Co z SSMS + <- wstaw narzędzie do porównywania schematów ->?

Jest to zdecydowanie krok we właściwym kierunku i pochłania wiele ręcznego wysiłku wymaganego do obsługi skryptów. Ale (i to duże, ale), zwykle są to ręczne kroki.

Popularne narzędzia do porównywania schematów można w pełni zautomatyzować i zintegrować z procesem kompilacji. Jednak z mojego doświadczenia wynika, że ​​bardziej powszechną praktyką jest ręczne uruchamianie porównania, a wynikowe skrypty są wypatrywane, sprawdzane w kontroli źródła, a następnie uruchamiane ręcznie w celu wdrożenia. Niedobrze.

Ilekroć my omylni ludzie musimy angażować się w proces budowania lub wdrażania, wprowadzamy ryzyko i sprawiamy, że proces ten nie jest powtarzalny.

Jeśli ty i twój zespół jesteście jednymi z nielicznych, którzy mają w pełni zautomatyzowane porównywanie i wdrażanie schematów, czapki z głów! Jesteście najbardziej otwarci na korzyści, jakie VS2010 ma do zaoferowania:

  • Już zaakceptowałeś, że ręczne kroki są niebezpieczne.
  • Widzisz wartość automatyzacji.
  • Jesteś gotów zainwestować czas niezbędny do jego działania.

Jeśli nie możesz utworzyć kompilacji w jednym kroku lub wdrożyć w jednym kroku, proces programowania i wdrażania jest zepsuty. Jeśli tak nie uważasz, zapytaj Joela Spolsky'ego .


Dlaczego VS2010?

Pytanie postawione przez @NickChammas dotyczy funkcji zabójczych, które pokazują, dlaczego VS2010 jest zmieniaczem gier do tworzenia baz danych. Nie sądzę, żebym mógł to zrobić na tej podstawie.

Być może komicznie, gdy inni widzą wady tego narzędzia, widzę silne powody do przyjęcia:

  • Będziesz musiał zmienić swoje podejście.
  • Ty i twój zespół będziecie zmuszeni do pracy w inny sposób.
  • Będziesz musiał szczegółowo ocenić wpływ każdej zmiany.
  • Zostaniesz poprowadzony do wprowadzenia każdej zmiany idempotent .

Jeśli jesteś jedynym DBA w projekcie, zarządzającym wszystkimi zmianami w bazie danych, to rozumowanie musi brzmieć absurdalnie. Jeśli jednak uważasz, że @BrentOzar ma rację i jedną z nowych zasad jest to, że Every's's DBA , będziesz musiał kontrolować zmianę bazy danych w sposób, z którym każdy programista w zespole może współpracować.

Przyjęcie projektów baz danych może wymagać zmiany mentalnej ( niektórych nawyków trudno przełamać ) dla niektórych programistów lub przynajmniej zmiany w procesie lub przepływach pracy. Programiści, którzy opracowali aplikacje bazodanowe , w których produkcyjna baza danych reprezentuje bieżącą wersję bazy danych, będą musieli zastosować podejście oparte na kodzie źródłowym, w którym kod źródłowy staje się narzędziem, w którym wprowadzane są zmiany w bazach danych . W Visual Studio Database Projects projekt i kod źródłowy to „Jedna wersja prawdy” dla schematu bazy danych i jest zarządzany za pomocą przepływów pracy SCM, które prawdopodobnie są już używane przez programistę lub organizację dla innych części stosu aplikacji. W przypadku danych produkcyjna baza danych pozostaje „jedną wersją prawdy” taką, jaka powinna być.

Doszliśmy do zasadniczej zmiany, która jest niezbędna do skutecznego przyjęcia podejścia VS2010 do tworzenia baz danych…

Traktuj swoją bazę danych jako kod

Nigdy więcej zmiany bazy danych na żywo. Każda zmiana bazy danych będzie przebiegać według tego samego wzoru co zmiana aplikacji. Modyfikuj źródło, kompiluj, wdrażaj. To nie jest tymczasowa zmiana kierunku od Microsoft, to jest przyszłość dla SQL Server . Baza danych jako kod zostanie tutaj.

Twórca bazy danych określa kształt obiektu dla wersji aplikacji, a nie sposób mutowania istniejącego obiektu w silniku bazy danych do pożądanego kształtu. Być może zastanawiasz się: w jaki sposób można to wdrożyć w bazie danych, która już zawiera tabelę klientów? Tutaj właśnie pojawia się silnik wdrażania. Jak wspomniano wcześniej, aparat wdrażania weźmie skompilowaną wersję schematu i porówna ją z celem wdrożenia bazy danych. Mechanizm różnicowania wygeneruje niezbędne skrypty do zaktualizowania schematu docelowego, aby pasował do wersji wdrażanej z projektu.

Tak, istnieją inne narzędzia, które działają w podobny sposób, a dla projektów poza ograniczeniami, które nałożyłem na moją odpowiedź, są one warte równego rozważenia. Ale jeśli pracujesz z programem Visual Studio i Team Foundation Server ALM, nie sądzę, aby mogli konkurować.

Co jest nie tak z projektami baz danych VS2010?

  • Nie są idealne . Ale jeśli znasz ograniczenia i obszary problemowe, możesz je obejść.
  • Złożone ruchy danych nadal wymagają opieki i uwagi, ale są pokrywane za pomocą skryptów wdrażania przed/po.

Edycja: Więc o co ci chodzi?

@AndrewBickerton wspomniał w komentarzu, że nie odpowiedziałem na oryginalne pytanie, więc postaram się podsumować „Dlaczego powinienem używać Visual Studio 2010 przez SSMS do tworzenia baz danych?” tutaj.

  • SSMS nie jest narzędziem do tworzenia baz danych. Tak, możesz rozwijać TSQL za pomocą SSMS, ale nie zapewnia on bogatych funkcji IDE VS2010.
  • VS2010 zapewnia platformę do traktowania bazy danych jako kodu.
  • VS2010 wprowadza statyczna analiza kod do kodu bazy danych.
  • VS2010 zapewnia narzędzia do pełnej automatyzacji cyklu kompilacji-wdrożenia-testu.
  • SQL2012 i Visual Studio vNext rozszerzają możliwości projektów baz danych. Zapoznaj się teraz z VS2010, a uzyskasz przewagę nad narzędziami do tworzenia baz danych nowej generacji.
19

VS może wyglądać świetnie, jeśli nie znasz SSMS lub używałeś narzędzi innych firm. Luki w VS wyróżniają się, jeśli używasz narzędzi Red Gate do porównywania schematów itp. Oraz darmowych wtyczek SSMS.

Bity kontroli źródła wprowadzają w błąd: w produkcyjnej bazie danych znajduje się kopia referencyjna. Nie tego używa programista. Widzieć

7
gbn

Używam Visual Studio szeroko (dobrze, BIDS) do projektowania raportów SSRS i pakietów SSIS. Nie mogłem sobie poradzić zbyt dobrze, jeśli w ogóle, w Management Studio. Visual Studio jest znacznie bardziej kompletnym i zintegrowanym środowiskiem programistycznym i znacznie lepiej łączy się z systemami kontroli źródeł. I to wszystko znajduje odzwierciedlenie w cenie!

6
Peter Schofield

Szczerze mówiąc, mój głos trafia prosto do SQL Server Management Studio w zakresie projektowania, rozwoju i (oczywiście) administracji baz danych. Po prostu łatwiej jest wpisać:

create table newTable
(
    someId int identity(1, 1) not null primary key clustered,
    ...... you get the idea
)

Następnie kliknij we wszystkich odpowiednich miejscach. SSMS to świetny układ i absolutnie świetny do pracy. A ja z natury jestem programistą .NET. Ale jeśli chodzi o projektowanie i kodowanie baz danych, wybiorę SSMS 11 razy na 10.

6
Thomas Stringer

Nie ma najlepszej praktyki, ale dzięki projektowi bazy danych VS 2010 i kontrolerowi kodu źródłowego (VSS 2010, Subversion itp.) Możesz zaktualizować swoją bazę danych.

Zalecam, aby najpierw zaprojektować bazę danych bezpośrednio w SSMS. Gdy baza danych jest prawie gotowa, zaimportuj ją do projektu bazy danych VS 2010. Po zakończeniu importowania należy zawsze dodać nowy skrypt do projektu bazy danych, aby śledzić wszystkie modyfikacje. Możesz użyć funkcji porównania projektu bazy danych, aby uzyskać wszystkie zmiany z serwera programistycznego i zaimportować wszystkie te skrypty bezpośrednio do projektu. Teraz wystarczy „zatwierdzić” zmianę w kontrolerze kodu źródłowego.

Dzięki tej metodzie możesz mieć wersjonowaną bazę danych. Możesz zlokalizować wersję każdej modyfikacji i wycofać zmiany.

To nie jedyna zaleta. Za pomocą tego rodzaju projektu możesz porównać dowolne bazy danych z twoim projektem, aby utworzyć skrypt zmian, a za pomocą polecenia SQL PowerShell Monit możesz zaktualizować wszystkie bazy danych za pomocą tego samego skryptu: ten skrypt jest schematem XML bazy danych. Wykona tylko niezbędne polecenia, aby zaktualizować twoje bazy danych. Masz również możliwość wprowadzenia test jednostkowy w swojej bazie danych. Dostępny jest inny dobry artykuł dotyczący projektu bazy danych tutaj . Dzięki funkcji wdrażania możesz mieć preskrypt i post-skrypt. Za pomocą tych skryptów można sprawdzać poprawność lub wstawiać dane do tabel systemowych.

tutaj to dobra procedura krok po kroku dla projektu bazy danych.

5
Nico

Używam SSMS częściej niż VS2010, ponieważ jest on dostępny podczas instalacji programu SQL Server. To chyba najważniejsza rzecz, dlaczego SSMS jest używany częściej niż VS2010, IMHO.

Odkryłem również, że dostawcy tacy jak Red-Gate wydają narzędzia, które integrują się z SSMS, a niekoniecznie VS2010. Może to być pozytywne, ponieważ pozwala ulepszyć SSMS tam, gdzie Microsoft tego nie zrobił. Jednym z przykładów jest SQL Source Control firmy Red-Gate, który jest dodatkiem do SSMS, który umożliwia połączenie SSMS z systemem kontroli źródła w Twojej firmie, niezależnie od tego, czy jest to Visual Team Foundation, czy to, co masz. VS2010 ma to wbudowane, ale w porównaniu z ceną narzędzia Reg-Gate właśnie zaoszczędziłem sporo pieniędzy bez konieczności kupowania VS2010.

Myślę, że ogólnie rzecz biorąc, sprowadza się to do preferencji, pracujesz z tym, w czym czujesz się komfortowo. Jeśli trenujesz nową osobę i trenujesz ją na VS2010, to stanie się ich preferencją, ponieważ wiedzą, jak sobie z tym poradzić.

Jeśli zacząłeś grać w SQL Server 2012, być może zauważyłeś, że SSMS robi makijaż VS2010 powoli, ale na pewno. Więc w końcu możesz nie być w stanie odróżnić między nimi.

2
user507