Comment déboguer une procédure stockée T-SQL dans une application multiniveau dans Visual Studio 2012?
Pour être clair, je veux définir un point d'arrêt dans un sproc dans VS 2012 et le frapper lorsque le sproc est appelé depuis une application ASP.NET WebForms dans la même session de débogage.
Lorsque vous suivez les mêmes étapes que pour VS 2010, les points d'arrêt ne sont pas touchés à l'intérieur du sproc.
Le débogage de T-SQL dans un sproc sur une base de données SQL Server 2008 R2 Express fonctionne comme prévu dans Visual Studio 2010.
Pour être sûr que tout a été activé correctement, j'ai parcouru les instructions pour VS 2010 ( ici ), mais aucune page de ce type n'existe pour VS 2012 ou .NET 4.5.
Il semble que l'étape manquante consiste à activer le "débogage d'application", mais aucune option de ce type n'existe dans le menu contextuel Explorateur de serveurs> Connexions de données dans VS 2012.
Vous devez ouvrir "Explorateur d'objets SQL Server. Pas" Explorateur de serveurs ". C'est ce qui est différent entre 2010 et 2012. Ensuite, cliquez avec le bouton droit de la souris sur le serveur et sélectionnez" Débogage de l'application ".
Ceci est pour VS2012 et SQL2012. Oui, les choses sont quelque peu différentes pour les autres versions, mais suivent un peu la même configuration. C'est délicat, car il faut disposer de plusieurs paramètres, sinon cela ne fonctionnera pas.
Installation à la vanille de VS et de SQL avec toutes les options correctes (la procédure est en dehors du champ de cet article)
droits d'administrateur complets sur l'environnement entier et droits d'administrateur système sur SQL (fondamentalement un environnement de développement; vous ne voudriez pas le faire dans un environnement de production)
je débogue toujours les applications Web .net sous IIS local complet. C'est une fonctionnalité Windows installée à partir du panneau de configuration.
bien que je développe mes bases de données, etc., en utilisant le projet de base de données VS SQL Server, je travaille toujours sous SQL autonome complet; J'utilise le schéma de comparaison pour actualiser ce SQL avec les modifications apportées dans VS (la procédure à suivre est en dehors de la portée de cet article)
aller aux propriétés du projet .net, Web, débogueurs (en bas) activés pour .net et serveur SQL
voir l'explorateur d'objet serveur SQL (pas l'explorateur de serveur)
reconstruisez la solution et exécutez l'application Web .net en mode débogage à partir de ide en cliquant sur la flèche verte Internet Explorer
J'espère n'avoir rien oublié. Si j'ai je viendrai révisé mon post.
Tout cela peut paraître compliqué. Il est. Mais avec un peu de discipline et de patience, cela n'a pas de prix. Bonne chance.
Je pense que le moyen le plus simple de procéder est d’ajouter DB à votre solution. Vous pouvez le faire en cliquant avec le bouton droit de la souris sur la base de données dans l’explorateur d’objets SQL Server (SSOX). C'est un très bon moyen de développer et de déboguer vos bases de données. Une fois que vous avez ajouté la base de données à votre projet, vous pouvez ajouter des points d'arrêt où vous voulez et déboguer contre LocalDB (ou une autre cible si vous le souhaitez). L'inconvénient majeur de cette approche est que vos données existantes ne migreront pas avec vous (bien que vous puissiez facilement publier à nouveau les modifications dans la base de données SQL à volonté). Voir le documentation sur SSDT sur MSDN pour plus de précisions.
L'article suivant détaillé explique exactement comment activer le débogage d'une procédure stockée lorsqu'une application .Net est exécutée.
http://www.sqlmag.com/content1/topic/debugging-stored-procedures-142054/catpath/sql-server