Limitations appliquées aux commandes et fonctionnalités du débogueur
Mise à jour : novembre 2007
Cette rubrique s'applique à :
Édition |
Visual Basic |
C# |
C++ |
Web Developer |
---|---|---|---|---|
Express |
||||
Standard |
||||
Pro et Team |
Légende du tableau :
Applicable |
|
Non applicable |
|
Commande ou commandes masquées par défaut. |
Le débogueur SQL fournit un grand nombre de fonctions de débogage courantes, même s'il ne les fournit pas toutes. Le débogage SQL prend en charge la plupart des commandes du débogueur, telles que la définition des points d'arrêt et le pas à pas. Vous pouvez afficher les valeurs des variables et des paramètres passés dans la fenêtre Variables locales. Vous pouvez également faire glisser des expressions vers la fenêtre Espion afin de les suivre lorsque vous parcourez ou exécutez la procédure.
Toutefois, le débogage SQL intervient dans un environnement très différent, en raison de plusieurs caractéristiques fondamentales de SQL Server lui-même. Certaines limitations de débogage ne s'appliquent qu'au débogage T-SQL ou au débogage SQL CLR. D'autres s'appliquent à l'ensemble du débogage SQL.
Limitations générales du débogage SQL
Vous ne pouvez pas utiliser Modifier & Continuer.
Vous ne pouvez pas utiliser Exécuter jusqu'au curseur dans la fenêtre Pile des appels.
Vous ne pouvez pas utiliser d'arrêt lorsqu'une instruction SQL est en cours.
Le résultat des instructions SQL PRINT n'apparaît pas dans le débogueur ou le volet Sortie de base de données.
Vous ne pouvez pas utiliser AutoRollback dans Visual Studio. Si vous reproduisez un bogue qui modifie des données, vous pouvez perdre ce bogue du fait de la modification de ces données.
Plusieurs fenêtres ne sont pas disponibles ou ne fournissent aucune fonction. Il s'agit des éléments suivants :
Mémoire
3DNow!
Code machine pour T-SQL
Limitations du débogage T-SQL
Les conditions et filtres de point d'arrêt ne sont pas pris en charge.
SQL n'ayant pas de véritable mémoire ou registres, vous ne pouvez pas utiliser la fenêtre Mémoire ou Registres.
Vous ne pouvez pas utiliser Définir l'instruction suivante pour modifier la séquence d'exécution. Vous devez suivre le contrôle de flux et l'ordre des instructions dans le code SQL. Une solution alternative consiste à insérer des instructions de contrôle autour de blocs de code SQL et à modifier la valeur des variables.
Vous ne pouvez pas accéder aux variables ou aux propriétés .Net Framework depuis un objet T-SQL.
La fenêtre Exécution est affichée, mais vous ne pouvez rien en faire d'utile, comme affecter une valeur à une variable ou interroger la base de données.
Plusieurs fenêtres ne sont pas disponibles ou ne fournissent aucune fonction. Il s'agit des éléments suivants :
Code machine
Threads
3DNow!
Processus
Modules
Limitations du débogage SQL CLR
Une seule session de débogage SQL/CLR peut avoir lieu par serveur. En effet, toute l'exécution du code SQL/CLR se fige pendant les opérations de débogage SQL/CLR. C'est pour cette raison que l'utilisateur du débogueur est tenu d'être un administrateur système SQL pour pouvoir procéder au débogage CLR SQL.
Le débogage SQL CLR ne doit jamais être réalisé sur un serveur de production. Le débogage CLR SQL est une opération risquée : le débogueur CLR SQL peut lire et écrire dans la mémoire du processus et exécuter du code arbitraire dans le processus serveur. Il provoque l'arrêt de tous les threads managés sur le serveur. Et lorsque vous terminez une session de débogage, SQL Server peut s'arrêter.
Vous ne pouvez pas accéder à des variables SQL globales, telles que @@ROWCOUNT, depuis un objet CLR SQL.
Dans un projet Visual Studio SQL Server, vous pouvez ajouter uniquement des références à un sous-ensemble des bibliothèques de classes .NET Framework. Il n'est pas possible de référencer tous les assemblys.