web-dev-qa-db-fra.com

Débogage de la procédure stockée dans SQL Server 2008

Est-il possible de déboguer une procédure stockée sur SQL Server 2008? 

J'ai accès à SQL Server Management Studio 2008 et Visual Studio 2008 (je ne suis pas sûr que cette fonctionnalité soit fournie).

En général, j'utilise le profileur SQL pour rechercher les paramètres transmis au proc stocké, mais j'aimerais pouvoir parcourir la procédure pour voir où il échoue.

Est-ce possible?

Quel est le meilleur moyen? (en termes de localisation rapide des bugs)

36
Russell

Eh bien, la réponse était assise devant moi tout le temps.

Dans SQL Server Management Studio 2008, il y a un bouton de débogage dans la barre d'outils. Définissez un point d'arrêt dans une fenêtre de requête à parcourir.

J'ai rejeté cette fonctionnalité au début parce que je n'avais pas pensé à entrer dans la procédure stockée, ce que vous pouvez faire facilement. 

SSMS fait essentiellement ce que FinnNK a mentionné avec la procédure pas à pas de MSDN, mais automatiquement.

Si facile! Merci pour votre aide FinnNK.

Edit: Je dois ajouter une étape pour rechercher l’appel de procédure stockée avec les paramètres pour lesquels j’ai utilisé SQL Profiler sur ma base de données.

33
Russell

Oui, vous le pouvez (à condition d’avoir au moins la version professionnelle de visual studio), bien que cela nécessite un peu d’installation une fois cette opération effectuée, ce n’est pas très différent du code de débogage. MSDN a une procédure pas à pas .

16
FinnNk
  • Oui, mais il peut être difficile de faire fonctionner le débogage, en particulier si vous essayez de déboguer SQL sur un serveur SQL distant à partir de votre propre ordinateur de développement.
  • Dans un premier temps, je vous conseillerais de commencer par le débogage directement sur le serveur, si possible.
  • Connectez-vous au serveur SQL à l'aide d'un compte doté de droits sysadmin ou demandez à votre administrateur de base de données de le faire.
  • Ensuite, pour votre propre compte Windows, créez un "identifiant" dans SQL Server, s'il n'en existe pas déjà:

enter image description here

  • Cliquez avec le bouton droit sur le compte> propriétés - assurez-vous que la connexion est membre du rôle 'sysadmin':

enter image description here

  • (Assurez-vous également que le compte est 'propriétaire' des bases de données pour lesquelles vous souhaitez déboguer des scripts (par exemple, des processus stockés) pour:

enter image description here

  • Ensuite, connectez-vous directement sur le serveur SQL en utilisant votre compte Windows.
  • Connectez-vous au serveur SQL à l'aide de l'authentification Windows (à l'aide du compte que vous venez d'utiliser pour vous connecter au serveur).
  • Maintenant, 'déboguez' la requête dans SQL Management Studio, en définissant des points d'arrêt si nécessaire. Vous pouvez entrer dans les procédures stockées en utilisant F11:

enter image description here

  • Voici un guide utile pour le débogage:

http://blogs.msdn.com/b/billramo/archive/2009/04/11/transact-sql-debugger-for-sql-server-2008-part-1.aspx

  • Si vous avez besoin de déboguer à distance, une fois cette partie opérationnelle, essayez de configurer le débogage distant:

http://blogs.msdn.com/b/billramo/archive/2009/04/11/transact-sql-debugger-for-sql-server-2008-part-2.aspx

4
Chris Halcrow

Une des conditions requises pour le débogage distant est que le compte Windows utilisé pour exécuter SSMS fasse partie du rôle sysadmin. Voir ce lien MSDN: http://msdn.Microsoft.com/en-us/library/cc646024%28v=sql.105%29.aspx

0
Jaes

MSDN a fourni un moyen facile de déboguer la procédure stockée. S'il vous plaît vérifier ce lien -
Comment: déboguer des procédures stockées

0
ShaileshDev