192 votes

Comment voir les valeurs d'une variable de table au moment du débogage en T-SQL ?

Peut-on voir les valeurs (lignes et cellules) d'une variable valorisée par une table dans SQL Server Management Studio (SSMS) pendant le débogage ? Si oui, comment ?

enter image description here

324voto

kirby Points 841
DECLARE @v XML = (SELECT * FROM <tablename> FOR XML AUTO)

Insérez la déclaration ci-dessus à l'endroit où vous voulez voir le contenu de la table. Le contenu de la table sera rendu en XML dans la fenêtre des locaux, ou vous pouvez ajouter @v à la fenêtre des montres.

enter image description here

1 votes

Il s'agit d'une solution de contournement qui est suffisamment bonne pour que les petits tableaux soient présentés en XML.

4 votes

Mais n'arrêtez pas de lire ! Une autre option géniale ci-dessous ! Super fil !

1 votes

J'ai eu de grands tableaux dont le XML n'était pas très facile à lire. Je fais un pas de plus - je copie le XML et le colle dans le fichier xmlgrid.net et vous pouvez voir le XML comme un tableau. La visualisation du tableau est vraiment utile. J'attends une version de SSMS qui dispose d'un visualiseur de tableau comme le visualiseur de table de données dans Visual Studio.

33voto

rortega Points 284

Ce n'est pas encore mis en œuvre selon ce lien Microsoft Connect : Microsoft Connect

4 votes

2 votes

Et nous voici en 2016. Pas mieux. Le lien Connect ne fonctionne plus non plus.

5 votes

Pour être honnête, ce n'est pas vraiment une réponse car elle ne répond pas à la question, la question est de savoir comment le faire (et non pas si SSMS a une fonctionnalité pour cela), dire que ce n'est pas implémenté alors qu'il existe des moyens d'afficher les valeurs n'est pas très utile.

18voto

havok Points 653

Ce projet https://github.com/FilipDeVos/sp_select a une procédure stockée sp_select qui permet de faire une sélection à partir d'une table temporaire.

Utilisation :

exec sp_select 'tempDb..#myTempTable'

Pendant le débogage d'une procédure stockée, vous pouvez ouvrir un nouvel onglet et exécuter cette commande pour voir le contenu de la table temporaire.

7 votes

Idéal pour les tables temporaires, mais pas pour les variables de table

0 votes

Il se bloque également si une transaction est ouverte, ce qui n'est pas très utile pour déboguer un test dans un framework tel que tSQLt qui ouvre toujours une transaction au début du test.

1 votes

WOW WOW WOW WOW

1voto

solairaja Points 755

Il suffit d'utiliser la requête de sélection pour afficher la table variable, où que vous vouliez vérifier.

http://www.simple-talk.com/sql/learn-sql-server/management-studio-improvements-in-sql-server-2008/

0 votes

Oui, c'est la meilleure option et la plus rapide. Il suffit de faire cela et de mettre en évidence et d'exécuter seulement le SQL que vous souhaitez exécuter si vous avez besoin de plus de contrôle.

2 votes

Utiliser la requête select where, dans la fenêtre de veille ?

0 votes

Utilisez la sélection dans la procédure ou toute autre requête adhoc que vous exécutez.

0voto

Faiz Points 1660

J'en suis arrivé à la conclusion que cela n'est pas possible sans aucun plugin.

0 votes

J'ai vu quelques aperçus de Visual Studio 2010. Très sophistiqué, complexe et détaillé... et le démonstrateur ne savait pas si les tables temp pouvaient être visualisées en mode débogage. Peut-être quand il sera publié, mais je ne retiens pas mon souffle.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X