Comment importer un grand MS SQL.fichier sql?

j'utilise des données SQL RedGate comparer et généré A.fichier sql, afin que je puisse l'exécuter sur ma machine locale. Mais le problème est que le fichier est supérieur à 300 Mo, ce qui signifie que je ne peux pas copier et coller parce que le presse-papiers ne sera pas capable de le gérer, et quand j'essaie d'ouvrir le fichier dans SQL Server Management Studio, je reçois une erreur sur le fait que le fichier est trop grand.

est-il un moyen de courir un grand .fichier sql? Le fichier contient essentiellement des données pour deux nouveaux tableaux.

194
demandé sur Jim Ashworth 2009-01-11 01:53:24

9 réponses

à partir de l'invite de commande, Démarrer sqlcmd :

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

il suffit de remplacer <server> par l'emplacement de votre boîte SQL et <your file here> par le nom de votre script. N'oubliez pas, si vous utilisez une instance SQL, la syntaxe est:

sqlcmd -S <server>\instance.

Voici la liste de tous les arguments que vous pouvez passer 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
répondu Ray Booysen 2015-10-08 18:03:13

j'avais exactement le même problème et je luttais depuis un moment puis j'ai finalement trouvé la solution qui est de définir le paramètre -a au sqlcmd afin de changer sa taille de paquet par défaut:

sqlcmd -S [servername] -d [databasename] -i [scriptfilename] -a 32767
51
répondu Takuro 2013-03-14 09:08:11

vous pouvez également utiliser cet outil. Il est vraiment utile.

BigSqlRunner

18
répondu Yigit Yuksel 2015-08-25 09:25:31
  1. Prendre l'invite de commande avec des privilèges d'administrateur
  2. changer le répertoire à l'endroit où le .fichier sql stocké
  3. exécuter la commande suivante

    sqlcmd -S 'your server name' -U 'user name of server' -P 'password of server' -d 'db name'-i script.sql

7
répondu Syam Kumar 2016-06-03 09:48:53

j'utilise MSSQL Express 2014 et aucune des solutions n'a fonctionné pour moi. Ils viennent tous de crasher SQL. Comme j'avais seulement besoin de lancer un script avec beaucoup de simples insert statements j'ai obtenu autour de lui en écrivant une petite application de console comme un dernier recours:

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
répondu Animus Miles-Militis 2017-04-06 07:17:42
2
répondu BobbyShaftoe 2009-01-10 22:55:55

votre question est assez similaire à celle-ci

, Vous pouvez enregistrer votre fichier/script .txt ou .sql et l'exécuter à partir de Sql Server Management Studio (je pense que le menu est ouvert/Query, puis il suffit d'exécuter la requête dans L'interface SSMS). Vous pouvez devoir mettre à jour la première ligne, en indiquant la base de données à créer ou à sélectionner sur votre machine locale.

Si vous avez à faire ce transfert de données très souvent, vous pouvez aller pour réplication. Selon vos besoins, la réplication de snapshot pourrait être acceptable. Si vous devez synchroniser les données entre vos deux serveurs, vous pouvez opter pour un modèle plus complexe comme la réplication de fusion.

EDIT: Je n'ai pas remarqué que vous aviez des problèmes avec les SSMS liés à la taille du fichier. Ensuite, vous pouvez aller pour la ligne de commande, comme proposé par d'autres, la réplication instantanée (publier sur votre serveur principal, s'abonner sur votre local, répliquer, puis se désabonner) ou même la sauvegarde/restauration

1
répondu Philippe Grondier 2017-05-23 12:10:30

le fichier contient essentiellement des données pour deux nouveaux tableaux.

alors vous pouvez trouver plus simple de simplement DTS (ou SSIS, si C'est SQL Server 2005+) les données sur, si les deux serveurs sont sur le même réseau.

si les deux serveurs ne sont pas sur le même réseau, vous pouvez sauvegarder la base de données source et la restaurer dans une nouvelle base de données sur le serveur de destination. Vous pouvez alors utiliser DTS/ SSIS , ou même un simple INSERT INTO SELECT , pour transférer les deux tableaux dans la base de données de destination.

1
répondu P Daddy 2009-01-11 00:18:49

Espère que cela vous aidera!

sqlcmd -u UserName -s <ServerName\InstanceName> -i U:\<Path>\script.sql
1
répondu ortegatorres10 2017-08-18 16:40:58