Jak zaimportować duży MS SQL.plik sql?

Używam RedGate SQL data compare i generowane a .plik sql, więc mogę go uruchomić na mojej lokalnej maszynie. Ale problem polega na tym, że plik ma ponad 300mb, co oznacza, że nie mogę kopiować i wklejać, ponieważ Schowek nie będzie w stanie sobie z tym poradzić, a kiedy próbuję otworzyć plik w SQL Server Management Studio, dostaję błąd o zbyt dużym pliku.

Czy jest sposób na dużąplik sql? Plik zasadniczo zawiera dane dla dwóch nowych tabel.

Author: Jim Ashworth, 2009-01-11

9 answers

Z wiersza polecenia Uruchom sqlcmd:

sqlcmd -S <server> -i C:\<your file here>.sql 

Po prostu zastąp <server> lokalizacją twojego pola SQL i <your file here> nazwą Twojego skryptu. Nie zapomnij, jeśli używasz instancji SQL składnia jest:

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] 
 367
Author: Ray Booysen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-08 18:03:13

Miałem dokładnie ten sam problem i miałem problemy przez jakiś czas, a następnie w końcu znalazłem rozwiązanie, które polega na ustawieniu parametru -a na sqlcmd w celu zmiany domyślnego rozmiaru pakietu:

sqlcmd -S [servername] -d [databasename] -i [scriptfilename] -a 32767
 51
Author: Takuro,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-14 09:08:11

Możesz również użyć tego narzędzia. To jest naprawdę przydatne.

BigSqlRunner

 18
Author: Yigit Yuksel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-25 09:25:31
  1. pobieraj wiersz polecenia z uprawnieniami administratora
  2. zmień katalog na where the .przechowywany plik sql
  3. 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

 7
Author: Syam Kumar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-03 09:48:53

Używam MSSQL Express 2014 i Żadne z rozwiązań nie działało dla mnie. Wszystkie po prostu zawiesiły SQL. Ponieważ potrzebowałem tylko uruchomić jednorazowy skrypt z wieloma prostymi instrukcjami wstawiania, obejrzałem go, pisząc małą aplikację konsolową w ostateczności:

class Program
{
    static void Main(string[] args)
    {
        RunScript();
    }

    private static void RunScript()
    {
        My_DataEntities db = new My_DataEntities();

        string line;

        System.IO.StreamReader file =
           new System.IO.StreamReader("c:\\ukpostcodesmssql.sql");
        while ((line = file.ReadLine()) != null)
        {
            db.Database.ExecuteSqlCommand(line);
        }

        file.Close();
    }
}
 4
Author: Animus Miles-Militis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-06 07:17:42
 2
Author: BobbyShaftoe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-10 22:55:55

Twoje pytanie jest bardzo podobne do tego

Możesz zapisać swój plik / skrypt jako .txt lub .sql i uruchom go z SQL Server Management Studio (myślę, że menu jest Open/Query, następnie po prostu uruchom zapytanie w interfejsie SSMS). Prawdopodobnie musisz zaktualizować pierwszą linię, wskazując bazę danych, która ma być utworzona lub wybrana na komputerze lokalnym.

Jeśli musisz wykonywać ten transfer danych bardzo często, możesz przejść do replikacji. W zależności od potrzeb replikacja migawek może być ok. Jeśli musisz zsynchronizować dane między dwoma serwerami, możesz wybrać bardziej złożony model, taki jak replikacja scalająca.

EDIT: nie zauważyłem, że masz problemy z SSMS powiązanymi z rozmiarem pliku. Następnie możesz przejść do wiersza poleceń, zgodnie z propozycją innych, replikacji migawek (Publikuj na głównym serwerze, Subskrybuj na lokalnym, Replikuj, a następnie Anuluj subskrypcję) lub nawet kopii zapasowej/przywracania

 1
Author: Philippe Grondier,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:10:30

Plik zasadniczo zawiera dane dla dwóch nowych tabel.

Wtedy może okazać się prostsze tylko DTS (lub SSIS, jeśli jest to SQL Server 2005+) danych nad, Jeśli dwa serwery są w tej samej sieci.

Jeśli dwa serwery nie są w tej samej sieci, można wykonać kopię zapasową bazy danych źródłowych i przywrócić ją do nowej bazy danych na serwerze docelowym. Następnie możesz użyć DTS/SSIS, lub nawet prostego INSERT INTO SELECT, aby przenieść dwie tabele do docelowej bazy danych.

 1
Author: P Daddy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-11 00:18:49

Mam nadzieję, że to ci pomoże!

sqlcmd -u UserName -s <ServerName\InstanceName> -i U:\<Path>\script.sql
 1
Author: ortegatorres10,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-18 16:40:58