7
votes

Comment exécuter une requête SQL lors du débogage d'une procédure stockée

Je débogage d'une procédure stockée sur SQL Server 2008 et j'ai ceci:

INSERT INTO #tempTable (ID, Name)
  SELECT ID, Name FROM dbo.MYTABLE WHERE dbo.MYTABLE.Old >= 15


3 commentaires

Query Temp DB et trouvez votre table, mais cela aura changé de nom, quelque chose comme Temptable00000001


Avec une instruction SELECT, généralement. Pourquoi?


Spécifiez ce que vous souhaitez réaliser, votre procédure stockée Insérez des données sur TEMP et vous souhaitez le voir à partir d'une autre session? Sinon, ajoutez simplement simple Sélectionnez * à partir de #temptable après cela, modifiez la procédure et activez, après avoir débogué le commentaire ou supprimez-le.


3 Réponses :


0
votes

Ce blog post explique comment accéder à une table temporaire d'une autre session: http://web.archive.org/web/20180409190701/http://sqlblog.com:80/blogs/paul_white/archive/2010/08/14/viewing- une autre-session-s-temporaire-table.aspx

alternative Vous pouvez utiliser deux ## dans le nom de la table pour rendre la table globalement accessible à partir d'autres sessions: ## tentable (la table peut être verrouillée pour la lecture tandis que votre insertion est en cours d'exécution)


0 commentaires

-1
votes

Même si SQL Server Management Studio a quelques fonctions de débogage, mais je les trouve assez inutiles.

Je ne pense pas qu'il existe des outils de débogage pour SQL Server comme Visual Studio, qui vous donnera une information étape par étape au moment de l'exécution.

La voie normalement des développeurs de débogage du code SQL Server consiste à utiliser l'instruction d'impression, pour les procédures stockées Prenez la définition de SP Déclarez une variable pour chaque paramètre que la procédure prévoit que les valeurs des variables et exécutent des blocs logiques plus petits pour voir ce qui est aller sur où.


0 commentaires

3
votes

Dans SQL Server Management Studio, vous ne pouvez pas exécuter directement la requête tout en débogage de la procédure stockée, et cela n'est toujours pas implémenté (je pense). Vous ne pouvez voir que la valeur de variables locales dans la fenêtre de débogage locale.

Il y a quelques œuvres pour voir les valeurs de table Temp, en mode de débogage: -

1) Dans la procédure stockée, après insérer des données dans #TRePTable, ajoutez cette ligne de code pour obtenir des valeurs tentables dans Table XML Variable où vous souhaitez voir des valeurs tenantes. Ensuite, vous pouvez vérifier les valeurs de la fenêtre de débogage locale au format XML xxx

2) Vous pouvez convertir la table Temp locale ( #temptable ) à Global Tentable ( ## tentable ) .. Lorsque vous insérez la date de la table Temp, vous pouvez ouvrir une nouvelle fenêtre de requête et pouvoir voir les enregistrements de table Temp globaux à l'aide de la requête SELECT.


0 commentaires