J'utilise une database 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 file batch? La database est une database distante.
Merci!
Enregistrez les commands dans un file .SQL
, ex: ClearTables.sql
, disons dans votre dossier C:\temp
.
Contenu de C:\Temp\ClearTables.sql
Delete from TableA; Delete from TableB; Delete from TableC; Delete from TableD; Delete from TableE;
Ensuite, utilisez sqlcmd
pour l'exécuter comme suit. Puisque vous avez indiqué que la database est distante, utilisez la syntaxe suivante (après la mise à jour de votre nom d'instance de server et de database).
sqlcmd -S <ComputerName>\<InstanceName> -i C:\Temp\ClearTables.sql
Par exemple, si le nom de votre ordinateur distant est SQLSVRBOSTON1 et que le nom de l'instance de database est MyDB1, la command le sera.
sqlcmd -E -S SQLSVRBOSTON1\MyDB1 -i C:\Temp\ClearTables.sql
Notez également que -E
spécifie l'authentification par défaut. Si vous avez un nom d'user et un mot de passe pour vous connecter, utilisez les commutateurs -U
et -P
.
Vous allez exécuter tout cela en ouvrant une window de command CMD
.
Utilisation d'un file batch
Si vous souhaitez l'save dans un file de commands et double-cliquez dessus pour l'exécuter, procédez comme suit.
Créez et enregistrez le ClearTables.bat
comme ça.
echo off sqlcmd -E -S SQLSVRBOSTON1\MyDB1 -i C:\Temp\ClearTables.sql set /p delExit=Press the ENTER key to exit...:
Ensuite, double-cliquez dessus pour l'exécuter. Il va exécuter les commands et attendre jusqu'à ce que vous appuyiez sur une touche pour quitter, afin que vous puissiez voir la sortie de la command.
Découvrez l'outil de command line SQLCMD fourni avec SQL Server. http://technet.microsoft.com/en-us/library/ms162773.aspx
Utilisez l'utilitaire SQLCMD .
http://technet.microsoft.com/en-us/library/ms162773.aspx
Il existe une instruction connect qui vous permet de basculer du server de database A vers le server B dans le même lot.
: Connect nom_server [\ nom_instance] [-l timeout] [-U nom_user [-P mot de passe]] Se connecte à une instance de SQL Server. Ferme également la connection en cours.
D'un autre côté, si vous êtes familier avec PowerShell , vous pouvez faire la même chose par programmation.
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)
planifier un travail dans l'agent de server SQL avec une nouvelle étape ayant le type "T-SQL", puis exécutez le travail.
Utiliser SQLCMD
Pour utiliser SQLCMD, reportez-vous à http://technet.microsoft.com/fr-fr/library/ms162773.aspx
Utiliser SQLPS
Pour utiliser SQLPS, reportez-vous à http://technet.microsoft.com/fr-fr/library/cc280450.aspx