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!
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.
consultez L'outil en ligne de commande SQLCMD fourni avec SQL Server. http://technet.microsoft.com/en-us/library/ms162773.aspx
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
Différentes façons:
à 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.Using SQLCMD
Pour utiliser SQLCMD se référer àhttp://technet.microsoft.com/en-us/library/ms162773.aspxUsing SQLPS
Pour utiliser SQLPS refer http://technet.microsoft.com/en-us/library/cc280450.aspx