Sortie de débogage dans T-SQL
Lors du débogage de T-SQL, est-il quelque chose comme du Javascript alert();
fonction ou console.log
je peux utiliser pour les valeurs de sortie lorsque les tests et le débogage des scripts SQL ou des procédures stockées?
source d'informationauteur silentAmbassador
Vous devez vous connecter pour publier un commentaire.
Oui, il est appelé
PRINT
. Voir ici:http://msdn.microsoft.com/en-us/library/ms176047.aspx
Vous pouvez utiliser de l'IMPRESSION à la sortie des messages de journal, mais personnellement, je préfère utiliser l'instruction RAISERROR avec de faible gravité, car la sortie d'IMPRESSION n'est pas toujours imprimé à l'écran immédiatement. Surtout en long de running SP. D'autre part quelque chose comme cela s'imprime immédiatement:
Ne vous laissez pas berner par le nom de l'ERREUR, une erreur avec la sévérité de 10 ne fait pas de mal.
Comme pour les CTE, je pense que vous avez un problème avec l'auto référencement d'Expressions de Table Communes. Mais vous devez savoir qu'il n'y a aucun moyen d'insérer une instruction d'IMPRESSION dans l'exécution d'une expression de table commune récursive.
Pour déboguer ceux que j'ai l'habitude d'ajouter un supplément de "Itération" Index de la colonne de l'ensemble de résultats qui est incrémenté à chaque itération. Aussi quelques autres colonnes pour aider à évaluer la situation. Quand on l'examine avec le reste du jeu de résultats, il donne généralement un bon aperçu. Quelque chose comme l'IDX col vers le bas. Les autres colonnes de m'aider à examiner les conditions de jointure pour voir ce qui n'allait pas:
Instruction PRINT aide. Au lieu de les IMPRIMER en donnant la sortie de volet résultat j'ai parfois l'insérer à la sortie de débogage pour une table.
Version plus récente de SQL (2008 et 2008R2) a option de débogage. Pas aussi solide que le débogage d'un projet c# dans Visual Studio, mais assez bon. Vous pouvez aller étape par étape et également créer une variable de la liste de surveillance.
- Je utiliser l'instruction "RAISERROR" avec l'indicateur "AVEC NOWAIT" comme ci-dessous:
Cette instruction affiche le message dans le temps.