Exécuter un ensemble de requêtes SQL en utilisant le fichier batch?

j'utilise une base de données SQL Server. J'ai ces requêtes SQL:

Delete from TableA;
Delete from TableB;
Delete from TableC;
Delete from TableD;
Delete from TableE;

est-il possible d'exécuter ces scripts en utilisant un fichier batch? La base de données est une base de données distante.

Merci!

26
demandé sur marc_s 2014-02-04 17:37:29

4 réponses

Enregistrer les commandes dans un .SQL fichier, ex: ClearTables.sql, dites dans votre C:\temp dossier.

contenu deC:\Temp\ClearTables.sql

Delete from TableA;
Delete from TableB;
Delete from TableC;
Delete from TableD;
Delete from TableE;

alors utilisez sqlcmd exécuter comme suit. Puisque vous avez dit que la base de données est distante, utilisez la syntaxe suivante (après mise à jour pour votre serveur et le nom de l'instance de la base de données).

sqlcmd -S <ComputerName>\<InstanceName> -i C:\Temp\ClearTables.sql

par exemple, si le nom de votre ordinateur distant est SQLSVRBOSTON1 et le nom de l'instance de la base de données est MyDB1, alors la commande être.

sqlcmd -E -S SQLSVRBOSTON1\MyDB1 -i C:\Temp\ClearTables.sql

notez aussi que -E spécifie l'authentification par défaut. Si vous avez un nom d'utilisateur et le mot de passe pour vous connecter, utilisez -U et -P interrupteurs.

vous exécuterez tout cela en ouvrant un CMD fenêtre de commande.

en utilisant un fichier Batch.

Si vous souhaitez l'enregistrer dans un fichier de commandes et double-cliquez dessus pour l'exécuter, faire comme suit.

Créer et enregistrer l' ClearTables.bat comme si.

echo off
sqlcmd -E -S SQLSVRBOSTON1\MyDB1 -i C:\Temp\ClearTables.sql
set /p delExit=Press the ENTER key to exit...:

double-cliquez dessus pour l'exécuter. Il exécutera les commandes et attendra jusqu'à ce que vous appuyez sur une touche pour sortir, de sorte que vous pouvez voir la sortie de commande.

46
répondu Shiva 2016-01-21 18:39:04

consultez L'outil en ligne de commande SQLCMD fourni avec SQL Server. http://technet.microsoft.com/en-us/library/ms162773.aspx

5
répondu BateTech 2014-02-04 13:41:17

SQLCMD utilitaire.

http://technet.microsoft.com/en-us/library/ms162773.aspx

il y a une déclaration de connexion qui vous permet de passer du serveur de base de données A au serveur B dans le même lot.

:Connectez server_name[\nom_instance] [-l timeout] [-U nom_utilisateur [-P mot de passe]] Se connecte à une instance de SQL Server. Ferme également la connexion actuelle.

d'autre part, si vous êtes familier avec PowerShell, vous pouvez programmer faire la même chose.

http://technet.microsoft.com/en-us/library/cc281954 (v=sql.105).aspx

2
répondu CRAFTY DBA 2014-02-04 13:42:17

Différentes façons:

  1. à l'Aide de l'Agent SQL Server (Si l'instance locale)

    programmez une tâche dans sql server agent avec une nouvelle étape ayant le type "T-SQL" puis exécutez la tâche.

  2. Using SQLCMD

    Pour utiliser SQLCMD se référer àhttp://technet.microsoft.com/en-us/library/ms162773.aspx

  3. Using SQLPS

    Pour utiliser SQLPS refer http://technet.microsoft.com/en-us/library/cc280450.aspx

0
répondu Punter015 2014-02-04 13:58:10