Comment faire pour exécuter un fichier de script SQL en utilisant sqlcmd et de sortie à la fois shell et fichier
Je suis en train d'exécuter un script sql à partir d'un fichier à l'aide de sqlcmd
à l'aide de la commande suivante:
sqlcmd -S <server> -d <database> -i <input file> -o <output file>
-U <user> -P <password>
Je lance mon fichier sql et de sortie dans un fichier journal.
Le problème est que cette modification de la sortie de sqlcmd
pour le fichier.. et je veux obtenir à la sortie de la coquille.
source d'informationauteur Noam Shaish
Vous devez vous connecter pour publier un commentaire.
@Noam,
Il y a un programme standard dans le monde UNIX qui lit à partir de stdin et écrit à stdout et dans un fichier spécifique: la tee de commande. L'exemple suivant indique le répertoire courant à stdout et à "monfichier":
Il y a quelques open-source de ports pour windows, comme winteeet c'est même trivial pour faire votre propre mise en œuvre (voir ici), mais PowerShell, en réalité, a déjà cet utilitaire intégré: le Tee-Objet.L'exemple suivant est analogue à la précédente, en PowerShell:
Par conséquent, la commande suivante va exécuter myscript.sql en monserveur, l'aide des informations d'identification windows, et son résultat sera de sortie sur la console et "result.txt":
@Noam, mais je ne pouvais pas trouver un moyen de dupliquer la sortie standard (STDOUT) gestionnaire, une solution qui peut-être résoudre votre problème est d'exécuter le script sql dans le fichier de sortie (c'est à dire
result.txt
) et ensuite utilisertype result.txt
à imprimer sur la sortie standard STDOUT.Si vous avez vraiment besoin de dupliquer le gestionnaire (peut-être la commande prend beaucoup de temps et vous ne voulez pas attendre jusqu'à ce qu'elle se termine avant l'obtention de la première ligne), vous pouvez faire un simple programme pour copier les entrées provenant de l'entrée standard vers la sortie standard et également dans un fichier. Ensuite, vous pouvez réécrire la commande comme:
Ce code peut être utilisé pour la connexion qui nécessitent une authentification