web-dev-qa-db-fra.com

Comment déboguer SQL Server T-SQL dans Visual Studio 2012

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.

Débogage d'applications VS 2010

enter image description here

VS 2012 Pas de débogage d'application

enter image description here

14
nekno

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 ".

28
Hunter

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.

    • aller aux propriétés du projet .net, Web, utiliser le serveur Web IIS local (je me tiens également au port 80 par défaut)
  • 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)

    • ne placez pas votre point d'arrêt sur cette copie du sp; cette version de sp n'est qu'un plan et non la version d'exécution
  • 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)

    • cliquez sur Ajouter un serveur SQL, ajoutez votre serveur SQL local complet à l'aide des informations d'identification sysadmin (j'utilise toujours sa pour ce type de travail).
    • clic droit sur votre serveur SQL local complet et activer le débogage de l'application
    • allez y trouver le sp et faites un clic droit et voir le code, puis ajoutez votre point d'arrêt là; c'est la version d'exécution de sp (notez que je ne modifie jamais sp ici, je vais les faire dans ma copie principale sous le projet de base de données)
  • 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.

2
ES44AC SD70MAC

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.

1
Andrew Clear

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

0
Conrad Lotz