W wierszu polecenia uruchom sqlcmd
:
sqlcmd -S <server> -i C:\<your file here>.sql
Wystarczy zastąpić <server>
lokalizacją swojego pola SQL i <your file here>
nazwą skryptu. Nie zapomnij, jeśli używasz instancji SQL, składnia jest następująca:
sqlcmd -S <server>\instance.
Oto lista wszystkich argumentów, które możesz przekazać sqlcmd:
Sqlcmd [-U login id] [-P password]
[-S server] [-H hostname] [-E trusted connection]
[-d use database name] [-l login timeout] [-t query timeout]
[-h headers] [-s colseparator] [-w screen width]
[-a packetsize] [-e echo input] [-I Enable Quoted Identifiers]
[-c cmdend] [-L[c] list servers[clean output]]
[-q "cmdline query"] [-Q "cmdline query" and exit]
[-m errorlevel] [-V severitylevel] [-W remove trailing spaces]
[-u unicode output] [-r[0|1] msgs to stderr]
[-i inputfile] [-o outputfile] [-z new password]
[-f | i:[,o:]] [-Z new password and exit]
[-k[1|2] remove[replace] control characters]
[-y variable length type display width]
[-Y fixed length type display width]
[-p[1] print statistics[colon format]]
[-R use client regional setting]
[-b On error batch abort]
[-v var = "value"...] [-A dedicated admin connection]
[-X[1] disable commands, startup script, environment variables [and exit]]
[-x disable variable substitution]
[-? show syntax summary]
INSERT INTO table_name (text) VALUES ('some text bla bla 'bla' text')
. Mam błąd w cytatach. SO Czego muszę użyć (który parametr) do obsługi tego błędu? DziękiMiałem dokładnie ten sam problem i walczyłem przez jakiś czas, a potem w końcu znalazłem rozwiązanie polegające na ustawieniu
-a
parametru nasqlcmd
w celu zmiany domyślnego rozmiaru pakietu:źródło
sqlcmd -S <Servername> -U <Username> -P <password> -d <Databasename> -i <filename>
Możesz także użyć tego narzędzia. To jest naprawdę przydatne.
BigSqlRunner
źródło
Weź wiersz polecenia z uprawnieniami administratora
Przejdź do katalogu, w którym znajduje się plik .sql
Wykonaj następujące polecenie
sqlcmd -S 'your server name' -U 'user name of server' -P 'password of server' -d 'db name'-i script.sql
źródło
Korzystam z MSSQL Express 2014 i żadne z rozwiązań nie zadziałało. Wszyscy po prostu rozbili SQL. Ponieważ wystarczyło mi tylko uruchomić skrypt jednorazowy z wieloma prostymi instrukcjami wstawiania, obejrzałem go, pisząc małą aplikację konsolową w ostateczności:
źródło
Uruchom go w wierszu polecenia za pomocą osql, patrz tutaj:
http://metrix.fcny.org/wiki/display/dev/How+to+execute+a+.SQL+script+using+OSQL
źródło
sqlcmd
zastępujeosql
.Miałem podobny problem. Mój plik SQL skryptu było ponad 150MB wielkości (prawie 900K bardzo proste INSERT s). Użyłem rozwiązania zalecanego przez Takuro (jako odpowiedź w tym pytaniu), ale nadal pojawia się błąd z komunikatem informującym, że nie ma wystarczającej ilości pamięci („Brak wystarczającej pamięci systemowej w puli zasobów„ wewnętrznej ”do uruchomienia tego zapytania”).
Pomogło mi to, że wstawiałem polecenie GO po każdych 50 000 WSTAWEK .
(Nie odnosi się bezpośrednio do pytania (rozmiaru pliku), ale uważam, że rozwiązuje problem pośrednio związany z dużym rozmiarem samego skryptu sql. W moim przypadku wiele poleceń wstawiania)
źródło
Twoje pytanie jest bardzo podobne do tego
Możesz zapisać plik / skrypt jako .txt lub .sql i uruchomić go z Sql Server Management Studio (myślę, że menu to Open / Query, a następnie po prostu uruchom zapytanie w interfejsie SSMS). Możesz zaktualizować pierwszy wiersz, wskazując bazę danych, która ma zostać utworzona lub wybrana na komputerze lokalnym.
Jeśli musisz często przesyłać dane, możesz przejść do replikacji. W zależności od potrzeb replikacja migawki może być w porządku. Jeśli musisz zsynchronizować dane między dwoma serwerami, możesz wybrać bardziej złożony model, na przykład replikację scalającą.
EDYCJA: Nie zauważyłem, że masz problemy z SSMS związane z rozmiarem pliku. Następnie możesz przejść do wiersza poleceń, zgodnie z propozycją innych, replikacji migawek (opublikuj na głównym serwerze, subskrybuj na lokalnym, replikuj, a następnie anuluj subskrypcję) lub nawet wykonaj kopię zapasową / przywróć
źródło
Wtedy może okazać się łatwiejsze po prostu DTS (lub SSIS, jeśli jest to SQL Server 2005+) przesyłanie danych, jeśli dwa serwery są w tej samej sieci.
Jeśli dwa serwery nie są w tej samej sieci, możesz wykonać kopię zapasową źródłowej bazy danych i przywrócić ją do nowej bazy danych na serwerze docelowym. Następnie możesz użyć DTS / SSIS lub nawet zwykłego
INSERT INTO SELECT
, aby przenieść dwie tabele do docelowej bazy danych.źródło
Mam nadzieję, że ci to pomoże!
źródło
Zetknąłem się z tym samym problemem i zainwestowałem cały dzień, aby znaleźć wyjście, ale problem można rozwiązać, tworząc kopię pliku .sql i zmieniając rozszerzenie na plik .txt i otwierając plik .txt w przeglądarce Chrome. Widziałem magię i plik otwiera się w przeglądarce.
Dziękuję i pozdrawiam,
źródło