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 Réponses :
Ce blog post explique comment accéder à une table temporaire d'une autre session:
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) P>
Même si SQL Server Management Studio a quelques fonctions de débogage, mais je les trouve assez inutiles. p>
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. p>
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ù. p>
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: - p>
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 p> 2) Vous pouvez convertir la table Temp locale ( #temptable code>) à Global Tentable (
## tentable code>) .. 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. P> P>
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 code> après cela, modifiez la procédure et activez, après avoir débogué le commentaire ou supprimez-le.