J'ai un certain nombre de fichiers .sql que je dois exécuter pour appliquer les modifications apportées par d'autres développeurs sur une base de données SQL Server 2005. Les fichiers sont nommés selon le modèle suivant:
0001 - abc.sql
0002 - abcef.sql
0003 - abc.sql
...
Existe-t-il un moyen de tous les exécuter en une seule fois?
for %%G in (*.sql) do sqlcmd /S servername /d databaseName -U username -P "password" -i"%%G"
Utilisez FOR . À partir de l'invite de commande:
la source
for %f in (*.sql) do sqlcmd /S <servername> /d <dbname> /E /i "%f" >> sql.log 2>&1)
Vous pouvez en savoir plus sur la redirection de la sortie iciDans SQL Management Studio, ouvrez une nouvelle requête et tapez tous les fichiers comme ci-dessous
Cliquez sur Mode SQLCMD; les fichiers seront sélectionnés en gris comme ci-dessous
la source
Assurez-vous que SQLCMD est activé en cliquant sur l'option Query> SQLCMD mode dans le studio de gestion.
Supposons que vous ayez quatre fichiers .sql (
script1.sql,script2.sql,script3.sql,script4.sql
) dans un dossierc:\scripts
.Créez un fichier de script principal (Main.sql) avec les éléments suivants:
Enregistrez le Main.sql dans c: \ scripts lui-même.
Créez un fichier de commandes nommé
ExecuteScripts.bat
comme suit:N'oubliez pas de remplacer
<YourDatabaseName>
par la base de données que vous souhaitez exécuter vos scripts. Par exemple, si la base de données est "Employé", la commande serait la suivante:Exécutez le fichier de commandes en double-cliquant dessus.
la source
-b
exemple:SQLCMD -b -i "file 1.sql","file 2.sql"
Vous pouvez utiliser ApexSQL Propagate . C'est un outil gratuit qui exécute plusieurs scripts sur plusieurs bases de données. Vous pouvez sélectionner autant de scripts que nécessaire et les exécuter sur une ou plusieurs bases de données (même sur plusieurs serveurs). Vous pouvez créer une liste de scripts et l'enregistrer, puis sélectionnez simplement cette liste chaque fois que vous souhaitez exécuter ces mêmes scripts dans l'ordre créé (plusieurs listes de scripts peuvent également être ajoutées):
Lorsque les scripts et les bases de données sont sélectionnés, ils seront affichés dans la fenêtre principale et tout ce que vous avez à faire est de cliquer sur le bouton «Exécuter» et tous les scripts seront exécutés sur les bases de données sélectionnées dans l'ordre indiqué:
la source
Requête générale
enregistrez les lignes ci-dessous dans le bloc-notes avec le nom batch.bat et placez-les dans le dossier où se trouvent tous vos fichiers de script
EXEMPLE
pour %% G dans (* .sql) faire sqlcmd / S NFGDDD23432 / d EMPLYEEDB -i "%% G" pause
parfois, si la connexion a échoué pour vous, veuillez utiliser le code ci-dessous avec le nom d' utilisateur et le mot de passe
pour %% G dans (* .sql) faire sqlcmd / S NE8148server / d EMPLYEEDB -U Scott -P tiger -i "%% G" pause
Après avoir créé le fichier bat dans le dossier dans lequel se trouvent vos fichiers de script, cliquez simplement sur le fichier bat, vos scripts seront exécutés
la source
J'ai écrit un utilitaire open source en C # qui vous permet de faire glisser et déposer de nombreux fichiers SQL et de commencer à les exécuter sur une base de données.
L'utilitaire présente les caractéristiques suivantes:
la source
Le moyen le plus simple que j'ai trouvé comprenait les étapes suivantes (la seule exigence est d'être dans Win7 +):
Cela semble long, mais en réalité, c'est très rapide .. (cela semble long comme je l'ai décrit même les plus petits pas)
la source
Ce que je sais, vous pouvez utiliser les commandes osql ou sqlcmd pour exécuter plusieurs fichiers sql. L'inconvénient est que vous devrez créer un script pour les deux commandes.
Utilisation de SQLCMD pour exécuter plusieurs scripts SQL Server
OSQL (Ceci est pour SQL Server 2000)
http://msdn.microsoft.com/en-us/library/aa213087(v=SQL.80).aspx
la source
Étape 1: les lignes ci-dessus copient dans le bloc-notes, enregistrez-le en tant que batte.
étape2: dans le dossier abc du lecteur d dans tous les fichiers SQL dans les requêtes exécutées sur le serveur SQL.
Étape 3: indiquez votre adresse IP, votre identifiant d'utilisateur et votre mot de passe.
la source
Vous pouvez créer un seul script qui appelle tous les autres.
Mettez ce qui suit dans un fichier de commandes:
Lorsque vous exécutez ce fichier de commandes, il crée un nouveau script nommé
all.sql
dans le même répertoire où se trouve le fichier de commandes. Il recherchera tous les fichiers avec l'extension.sql
dans le même répertoire où se trouve le fichier de commandes.Vous pouvez ensuite exécuter tous les scripts en utilisant
sqlplus user/pwd @all.sql
(ou étendre le fichier de commandes à appelersqlplus
après avoir créé leall.sql
script)la source
Pour exécuter chaque fichier SQL sur le même répertoire, utilisez la commande suivante:
Cette commande créera un seul fichier SQL avec les noms de chaque fichier SQL dans le répertoire ajouté par "@".
Une fois le
all.sql
créé, exécutez simplementall.sql
avec SQLPlus, cela exécutera chaque fichier sql dans leall.sql
.la source
Si vous pouvez utiliser Interactive SQL:
1 - Créez un fichier .BAT avec ce code:
2 - Modifiez le pwd et le ServerName.
3 - Placez le fichier .BAT dans le dossier contenant les fichiers .SQL et exécutez-le.
la source