2012-08-09 3 views
0

Je cherche un moyen efficace de déboguer T-SQL complexe et long. J'ai trouvé la suggestion de MSDN pour ce http://msdn.microsoft.com/en-us/library/ms241871%28v=vs.80%29.aspx mais quand je place les points de rupture il recule avec "Le point d'arrêt ne sera pas actuellement frappé Aucun symbole n'a été chargé pour ce document." La configuration est configurée comme débogage et non relâchée. Je cours Visual Studio 2010 professionnel.TSQL Debugging Édition

+0

Une option consiste à utiliser sql profiler. – JonH

+0

Une technique pratique consiste à exécuter le code, ou des fractions de code, dans SSMS après l'avoir enveloppé dans 'BEGIN TRANSACTION' /' ROLLBACK TRANSACTION'. Il peut encore y avoir des effets secondaires, par ex. les valeurs d'identité peuvent être ignorées. Cela ne devrait pas poser de problème. – HABO

Répondre

0

Vous pouvez simplement utiliser Management Studio pour déboguer votre script T-SQL, sauf s'il implique des composants CLR personnalisés. N'utilisez pas Visual Studio pour attacher à sqlservr.exe.

+0

Cela ne nécessite-t-il pas les droits SA? – PMOrion

+0

Vous êtes assez puissant pour jouer avec sqlservr.exe, et pourtant vous vous inquiétez des droits SA? –

+0

Pour jouer avec Sqlservr.exe? Je suivais simplement l'affichage de MSDN pour attacher un processus et utiliser le débogueur VS; le sélectionner dans une liste d'ID de processus en cours d'exécution. Je n'ai pas les droits d'administration de SA mais j'ai besoin de déboguer T-Sql que je construis. – PMOrion

0

Ceci est une sorte de suggestion non optimale, mais qui peut être utile.

Déclarez un paramètre BIT @Debug au sommet du proc, mis à 1, puis ajouter dans quelques

IF @Debug = 1 
    SELECT 'Debug statement blahblah' //or report something useful for debugging 

Cela ne modifie le proc quelque peu, mais cette technique a été utile dans le passé, surtout avec des procs longs et compliqués.