Mam wiele plików .sql, które muszę uruchomić, aby zastosować zmiany wprowadzone przez innych programistów w bazie danych SQL Server 2005. Pliki są nazywane zgodnie z następującym wzorcem:
0001 - abc.sql
0002 - abcef.sql
0003 - abc.sql
...
Czy jest sposób, aby uruchomić je wszystkie za jednym zamachem?
for %%G in (*.sql) do sqlcmd /S servername /d databaseName -U username -P "password" -i"%%G"
Użyj dla . W wierszu polecenia:
źródło
for %f in (*.sql) do sqlcmd /S <servername> /d <dbname> /E /i "%f" >> sql.log 2>&1)
Możesz przeczytać więcej o przekierowaniu wyjścia tutajW SQL Management Studio otwórz nowe zapytanie i wpisz wszystkie pliki jak poniżej
Kliknij Tryb SQLCMD; pliki zostaną zaznaczone na szaro, jak poniżej
źródło
Upewnij się, że włączono SQLCMD, klikając opcję Zapytanie> Tryb SQLCMD w studiu zarządzania.
Załóżmy, że masz cztery pliki .sql (
script1.sql,script2.sql,script3.sql,script4.sql
) w folderzec:\scripts
.Utwórz główny plik skryptu (Main.sql) z następującymi elementami:
Zapisz plik Main.sql w c: \ scripts.
Utwórz plik wsadowy o
ExecuteScripts.bat
następującej nazwie :Pamiętaj, aby zastąpić
<YourDatabaseName>
bazę danych, w której chcesz wykonywać skrypty. Na przykład, jeśli bazą danych jest „Pracownik”, polecenie byłoby następujące:Uruchom plik wsadowy, dwukrotnie klikając to samo.
źródło
-b
przykładu:SQLCMD -b -i "file 1.sql","file 2.sql"
Możesz użyć ApexSQL Propagate . Jest to darmowe narzędzie, które wykonuje wiele skryptów w wielu bazach danych. Możesz wybrać dowolną liczbę skryptów i wykonywać je na jednej lub wielu bazach danych (nawet na wielu serwerach). Możesz utworzyć listę skryptów i zapisać ją, a następnie po prostu wybrać tę listę za każdym razem, gdy chcesz wykonać te same skrypty w utworzonej kolejności (można również dodać wiele list skryptów):
Po wybraniu skryptów i baz danych zostaną one wyświetlone w oknie głównym i wystarczy kliknąć przycisk „Wykonaj”, a wszystkie skrypty zostaną uruchomione na wybranych bazach w podanej kolejności:
źródło
Zapytanie ogólne
Zapisz poniższe wiersze w notatniku pod nazwą batch.bat i umieść w folderze, w którym znajduje się cały plik skryptu
PRZYKŁAD
dla %% G in (* .sql) do sqlcmd / S NFGDDD23432 / d EMPLYEEDB -i "%% G" pauza
czasami, jeśli logowanie się nie powiodło, użyj poniższego kodu z nazwą użytkownika i hasłem
dla %% G in (* .sql) do sqlcmd / S NE8148server / d EMPLYEEDB -U Scott -P tiger -i "%% G" pauza
Po utworzeniu pliku bat w folderze, w którym znajdują się pliki skryptów, po prostu kliknij plik bat, a Twoje skrypty zostaną wykonane
źródło
Napisałem narzędzie open source w języku C #, które umożliwia przeciąganie i upuszczanie wielu plików SQL i uruchamianie ich w bazie danych.
Narzędzie ma następujące funkcje:
źródło
Najłatwiejszy sposób, jaki znalazłem, obejmował następujące kroki (jedynym wymaganiem jest, aby być w Win7 +):
Brzmi długo, ale w rzeczywistości jest bardzo szybki ... (brzmi długo, o ile opisałem nawet najmniejsze kroki)
źródło
Co wiem, możesz użyć poleceń osql lub sqlcmd do wykonania wielu plików sql. Wadą jest to, że będziesz musiał utworzyć skrypt dla obu poleceń.
Używanie SQLCMD do wykonywania wielu skryptów SQL Server
OSQL (dotyczy SQL Server 2000)
http://msdn.microsoft.com/en-us/library/aa213087(v=SQL.80).aspx
źródło
Krok 1: powyższe wiersze skopiuj do notatnika i zapisz go jako nietoperz.
step2: w folderze abc dysku d we wszystkich plikach Sql w zapytaniach wykonywanych na serwerze sql.
step3: Podaj swój adres IP, identyfikator użytkownika i hasło.
źródło
Możesz stworzyć jeden skrypt, który wywoła wszystkie pozostałe.
Umieść w pliku wsadowym:
Po uruchomieniu tego pliku wsadowego utworzy on nowy skrypt o nazwie
all.sql
w tym samym katalogu, w którym znajduje się plik wsadowy. Będzie szukać wszystkich plików z rozszerzeniem.sql
w tym samym katalogu, w którym znajduje się plik wsadowy.Następnie możesz uruchomić wszystkie skrypty za pomocą
sqlplus user/pwd @all.sql
(lub rozszerzyć plik wsadowy, aby wywołaćsqlplus
po utworzeniuall.sql
skryptu)źródło
Aby wykonać każdy plik SQL w tym samym katalogu, użyj następującego polecenia:
To polecenie utworzy pojedynczy plik SQL z nazwami każdego pliku SQL w katalogu z dołączonym znakiem „@”.
Po
all.sql
utworzeniu po prostu wykonajall.sql
z SQLPlus, spowoduje to wykonanie każdego pliku sql wall.sql
.źródło
Jeśli możesz używać interaktywnego SQL:
1 - Utwórz plik .BAT z tym kodem:
2 - Zmień pwd i ServerName.
3 - Umieść plik .BAT w folderze zawierającym pliki .SQL i uruchom go.
źródło