Partager via


Procédure pas à pas : déboguer une procédure stockée étendue

Cette rubrique s'applique à :

Visual Studio Ultimate

Visual Studio Premium

Visual Studio Professional

Visual Studio Express

6c02e2k1.DoesApplybmp(fr-fr,VS.100).gif 6c02e2k1.DoesApplybmp(fr-fr,VS.100).gif 6c02e2k1.DoesApplybmp(fr-fr,VS.100).gif 6c02e2k1.DoesNotApplybmp(fr-fr,VS.100).gif

Avertissement

Les procédures stockées étendues ont été déconseillées.Même si elles continuent à être prise en charge pour la compatibilité descendante dans ASP.NET, cette prise en charge sera supprimée dans une version ultérieure.

Les procédures stockées étendues ont été introduites pour permettre des actions impossibles dans Transact-SQL, telles que l'accès au système de fichiers, la lecture du Registre, et ainsi de suite.Maintenant que vous pouvez effectuer ces actions en écrivant des procédures SQL CLR, il n'est plus nécessaire d'écrire des procédures stockées étendues.Il est fortement recommandé de ne pas écrire de nouvelles procédures stockées étendues, et d'envisager de remplacer les existantes par des procédures stockées SQL CLR équivalentes mais plus sécurisées.

Les procédures stockées étendues sont des DLL écrites en C++, ou tout autre langage, plutôt que SQL.Par conséquent, le débogage d'une procédure stockée étendue s'apparente nettement à celui d'une DLL dans ce langage.

Avertissement

Les procédures stockées étendues sont écrites habituellement en C++ natif et n'ont pas les protections offertes par le code managé.Elles doivent être testées soigneusement parce que les bogues peuvent bloquer SQL Server.Pour éviter des pertes potentielles de données et d'autres problèmes, ne déboguez pas de procédure stockée étendue sur un serveur de production.Pour plus d'informations, consultez la documentation en ligne de ASP.NET.

Selon vos paramètres actifs ou votre édition, les boîtes de dialogue et commandes de menu auxquelles vous accédez peuvent différer de celles qui sont décrites dans l'aide.Pour modifier vos paramètres, sélectionnez Importation et exportation de paramètres dans le menu Outils.Pour plus d'informations, consultez Visual Studio Settings.

Pour déboguer une procédure stockée étendue

  1. Démarrez avec une version Debug d'une DLL de procédure stockée étendue.Vous avez besoin également d'une application qui appelle la procédure stockée étendue que vous souhaitez déboguer.Si vous n'en avez pas une de prête, effectuez l'une des actions suivantes :

    • Créez un projet de base de données Visual Studio avec une connexion de données pour la base de données qui contient la procédure stockée étendue et le code pour appeler la procédure stockée étendue.

    • Créez un fichier script SQL qui appelle la procédure stockée étendue.

      – ou –

    • Utilisez une application telle que SQL Server Management Studio, incluse avec SQL Server, ou ODBC Test, inclus avec ODBC SDK.

  2. Si SQL Server est en cours d'exécution comme service, arrêtez-la en ouvrant le panneau de contrôle Services, sélectionnez SQL Server, et cliquez sur Arrêter.

  3. Copiez la version Debug de la DLL dans le répertoire qui contient Sqlservr.exe ou tout répertoire dans le chemin de recherche.

    – ou –

    Définissez un événement post-build pour copier la DLL dans votre projet C++ comme suit :

    1. Ouvrez la boîte de dialogue <Pages de propriétés>Projet.

    2. Dans la boîte de dialogue Pages de propriétés de <Projet>, ouvrez le dossier Propriétés de configuration.

    3. Sous Propriétés de configuration, ouvrez le dossier Événements de build.

    4. Sélectionnez Événement post-build.

    5. Dans le contrôle Grid, en regard de Ligne de commande, tapez une commande de copie, telle que l'exemple suivant :

      Copy c:\MyProjects\MyXProc\debug\MyXProc.dll C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn

  4. Enregistrez la procédure stockée étendue.

  5. Spécifiez SQL Server comme le fichier exécutable appelant et le répertoire de travail pour la DLL de procédure stockée étendue.Modifiez les paramètres dans la boîte de dialogue Propriétés du projet de <Projet> accessible dans la catégorie Débogage de Propriétés de configuration, comme suit :

    • Si SQL Server a été installé dans l'emplacement par défaut, tapez C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn\SQLSERVR.EXE dans la zone Commande.

    • Définissez l'entrée Répertoire de travail comme suit C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn.

    • Affectez à l'entrée Arguments de la commande la valeur -c.L'option -c indique à SQL Server qu'elle démarre à partir de la ligne de commande et pas comme un service, ce qui entraîne un démarrage plus rapide de SQL Server.SQL Server ne démarrera pas comme un service mais comme une application console sous le contrôle de l'environnement de débogage Visual Studio.Cela permettra aux points d'arrêt d'être intercepté et géré correctement.

  6. Définissez les points d'arrêt dans le code source de la procédure stockée étendue.

  7. Utilisez une commande d'exécution pour démarrer la session de débogage.Pour plus d'informations, consultez Contrôle d'exécution.

    Une fenêtre de console apparaîtra au démarrage de SQL Server.Lorsque le défilement du texte s'arrêtera, le dernier message indiquera :

    Procédure de démarrage 'sp_sqlregister' lancée

    SQL Server démarre et commence à traiter des demandes.

  8. Exécutez la procédure stockée étendue.

    Le débogueur s'interrompt lorsqu'il atteint une ligne qui contient un point d'arrêt.

    Pour plus d'informations sur l'écriture de procédures stockées étendues, consultez la section SQL Server de la Base de connaissances Microsoft ou la section Programmation des procédures stockées étendues de la documentation SQL Server dans MSDN Library.

Voir aussi

Concepts

Débogage Transact-SQL