web-dev-qa-db-fra.com

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

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 de commandes? La base de données est une base de données distante.

Merci!

29
user755806

Enregistrez les commandes dans un fichier .SQL, Ex: ClearTables.sql, Par exemple dans votre dossier C:\temp.

Contenu deC:\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 dit que la base de données est distante, utilisez la syntaxe suivante (après la mise à jour de votre serveur et du nom de l'instance de 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 que le nom de l'instance de base de données est MyDB1, la commande sera alors.

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'utilisateur et un mot de passe pour vous connecter, utilisez les commutateurs -U Et -P.

Vous exécuterez tout cela en ouvrant une fenêtre de commande CMD.

tilisation d'un fichier de commandes.

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

Créez et enregistrez le ClearTables.bat Comme ceci.

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

Puis double-cliquez dessus pour l'exécuter. Il exécutera les commandes et attendra que vous appuyiez sur une touche pour quitter afin que vous puissiez voir le résultat de la commande.

54
Shiva

Consultez l'outil de ligne de commande SQLCMD fourni avec SQL Server. http://technet.Microsoft.com/en-us/library/ms162773.aspx

5
BateTech

Utilisez l'utilitaire [~ # ~] sqlcmd [~ # ~] .

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

Il existe une instruction de connexion qui vous permet de basculer du serveur de base de données A au serveur B dans le même lot.

: Connect nom_serveur [\ nom_instance] [-l délai d'attente] [-U nom_utilisateur [-P mot de passe]] Se connecte à une instance de SQL Server. Ferme également la connexion en cours.

Par contre, si vous connaissez PowerShell , vous pouvez procéder de la même manière par programmation.

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

2
CRAFTY DBA

Différentes façons:

  1. Utilisation de l'agent SQL Server (si instance locale)
    planifiez un travail dans un agent de serveur SQL avec une nouvelle étape de type "T-SQL", puis exécutez le travail.

  2. Utiliser SQLCMD
    Pour utiliser SQLCMD, reportez-vous à http://technet.Microsoft.com/en-us/library/ms162773.aspx

  3. Utiliser SQLPS
    Pour utiliser SQLPS, voir http://technet.Microsoft.com/en-us/library/cc280450.aspx

0
Punter015