Mam zestaw skryptów, które należy uruchomić w określonej kolejności. Chciałbym utworzyć „plik główny”, który zawiera listę wszystkich pozostałych plików i ich prawidłową kolejność. Zasadniczo jak plik dołączany z C ++ lub ASP / VBScript.
Mam zestaw skryptów, które należy uruchomić w określonej kolejności. Chciałbym utworzyć „plik główny”, który zawiera listę wszystkich pozostałych plików i ich prawidłową kolejność. Zasadniczo jak plik dołączany z C ++ lub ASP / VBScript.
Odpowiedzi:
Jeśli używasz SQLCMD , możesz użyć, :r FileName
aby dołączyć osobny plik .sql.
: r nazwa_pliku
Analizuje dodatkowe instrukcje T-SQL i polecenia SQLCMD z pliku określonego przez FileName do pamięci podręcznej instrukcji. Nazwa pliku jest odczytywana względem katalogu startowego programu Visual Studio. Plik jest odczytywany i wykonywany po napotkaniu terminatora wsadowego. Możesz wydać wiele poleceń: r. Plik może zawierać dowolne polecenie SQLCMD, w tym terminator partii zdefiniowany w Narzędzia, Opcje. Możesz użyć: rw skrypcie przedwdrożeniowym lub powdrożeniowym, aby dołączyć inne skrypty.
W znaczeniu starożytnych preprocesorów C zdecydowanie nie
Jeśli masz zestaw plików o podanych ścieżkach bezwzględnych, które chcesz dołączyć w bezwarunkowej kolejności, możesz użyć narzędzia wiersza poleceń sqlcmd lub SSMS w trybie sqlcmdmode, o czym wspominają @mfredrickson i @Marian.
Ale jeśli chcesz mieć ścieżki względne lub warunkowe, musisz użyć otoki wywołującej sqlcmd (lub jednego z przestarzałych poprzedników isql lub osql).
Obecnie w mojej pracy w tej sytuacji przeglądam i rozszerzam stary kod VBS i HTML. Nie jestem do końca szczęśliwy, ale jest to pragmatyczna decyzja. Działa, a użytkownik końcowy jest w domu z graficznym interfejsem użytkownika hta i nie jest wymagana dodatkowa instalacja oprogramowania.
Aby uzyskać nowy projekt, zacznę myśleć o użyciu WPF i PowerShell do zawijania wywołań sqlcmd, ale w przypadku naszych obecnych klientów nie mogę zakładać obecności PowerShell V2.
W dawnych czasach pisaliśmy w tym celu proste partie cmd, niektóre z nich wciąż są w użyciu.
Sądzę, że istnieją aktualne narzędzia, szczególnie te ukierunkowane na przepływy pracy, które mogą być tutaj odpowiednie. Nie znam ich.
Wraz z trybem SQLCMD w Management Studio, możesz także użyć pliku wsadowego, aby użyć go jako pliku głównego do aranżacji i wywoływania wszystkich plików SQL za pomocą narzędzia SQLCMD .
Tryb SQLCMD to symulacja użycia narzędzia w Management Studio, więc nie ma dużej różnicy między trybami. Tyle że czasami wolę uruchamiać partie (koniec otwierania M Studio ... ładowanie poprawnej bazy danych ... itd.). Wolę skonfigurować wszystko w partii, w tym pliki wyjściowe.
Zgadzam się, że preprocesor T-SQL jest bardzo potrzebny. Opracowałem własny w języku C #, co zajęło mi godzinę. Oprócz kontroli kolejności wykonywania skryptów SQL, pozwala mi to również mieć makra, które wyglądają jak skalarne UDF i są wygodne w użyciu, ale działają tak szybko jak wbudowane UDF.
Podoba mi się odpowiedź bernd_k . W zależności od tego, jak nazwałeś swoje skrypty, na przykład wraz z numerem, możesz użyć programu SQL Server PowerShell (SQLPS), jeśli korzystasz z programu SQL Server 2008 lub nowszego. Wtedy nawet jeśli korzystasz z SQL 2005, możesz użyć PowerShell i SMO dla 2005.
Uwaga dodatkowa: Wierzę, że SQLCMD ostatecznie zostanie umieszczony na liście amortyzacji i zostanie zastąpiony przez SQLPS, PowerShell.
Istnieje również kilka innych opcji.
SQLCMD
daj mi znać, ponieważ większość z tego, co znajduję, dotyczy PowerShell . Nie widzę też odniesienia, w którym sqlcmd
jest używane z SSDT, może oprócz porównania schematów, ale nigdy nie używam wygenerowanych skryptów.