Partager via


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

Mise à jour : novembre 2007

Cette rubrique s'applique à :

Édition

Visual Basic

C#

C++

Web Developer

Express

La rubrique ne s'applique pas La rubrique ne s'applique pas La rubrique ne s'applique pas La rubrique ne s'applique pas

Standard

La rubrique ne s'applique pas La rubrique ne s'applique pas La rubrique ne s'applique pas La rubrique ne s'applique pas

Pro et Team

La rubrique s'applique La rubrique s'applique La rubrique s'applique La rubrique s'applique

Légende du tableau :

La rubrique s'applique

Applicable

La rubrique ne s'applique pas

Non applicable

La rubrique s'applique mais la commande est masquée par défaut

Commande ou commandes masquées par défaut.

Attention :

Les procédures stockées étendues ont été désapprouvées. Bien qu'elles continuent à être prises en charge pour des raisons de compatibilité descendante dans ASP.NET, elles sont appelées à disparaître dans une version future.

Les procédures stockées étendues ont été introduites pour effectuer des actions dans T-SQL qui n'étaient pas possibles, comme l'accès au système de fichiers, la lecture du Registre, etc. 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 déconseillé d'écrire de nouvelles procédures stockées étendues. Il vaudra mieux envisager de remplacer les exemplaires existants par des procédures SQL/CLR stockées équivalentes, plus sûres.

Les procédures stockées étendues sont des DLL écrites en C++ ou tout autre langage, plutôt qu'en SQL. Par conséquent, le débogage d'une procédure stockée étendue est similaire au débogage d'une DLL dans ce langage.

Attention :

Les procédures stockées étendues sont généralement écrites en C++ natif et ne bénéficient pas des protections offertes par le code managé. Elles doivent être testées avec soin, les bogues ayant la capacité de provoquer l'arrêt brutal de SQL Server. Pour éviter des pertes potentielles de données et d'autres problèmes, ne déboguez pas une procédure stockée étendue sur un serveur de production. Pour plus d'informations, consultez la documentation de ASP.NET en ligne.

Les boîtes de dialogue et les commandes de menu qui s'affichent peuvent être différentes de celles qui sont décrites dans l'aide, en fonction de vos paramètres actifs ou de l'édition utilisée. Pour modifier vos paramètres, choisissez Importation et exportation de paramètres dans le menu Outils. Pour plus d'informations, consultez Paramètres Visual Studio.

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 également besoin d'une application qui appelle la procédure stockée étendue que vous souhaitez déboguer. Si vous n'en avez pas de disponible, effectuez l'une des actions suivantes :

    • Créer 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 servant à appeler cette procédure.

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

      - ou -

    • Utiliser une application telle que ISQL/W, fournie avec SQL Server, ou ODBC Test, fournie avec le Kit de développement ODBC SDK.

  2. Si SQL Server est en cours d'exécution en tant que service, arrêtez-le en ouvrant le panneau de configuration Services, en sélectionnant SQL Server, puis en cliquant sur Arrêter.

  3. Copiez la version Debug de la DLL dans le répertoire dans lequel sqlservr.exe se trouve ou dans n'importe quel répertoire du chemin de recherche.

    - ou -

    Définissez un événement après génération pour copier la DLL dans votre projet C++ comme suit :

    1. Ouvrez la boîte de dialogue Pages de propriétés de 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 génération.

    4. Cliquez sur Événement après génération.

    5. Dans le contrôle de grille, à côté de Ligne de commande, tapez une commande de copie, telle que :

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

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

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

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

    • Dans l'entrée Répertoire de travail, indiquez C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn.

    • Définissez l'entrée Arguments de commande à la valeur -c. L'option -c indique à SQL Server qu'il est démarré à partir de la ligne de commande et pas en tant que service, ce qui entraîne le démarrage plus rapide de SQL Server. SQL Server ne démarre pas en tant que service, mais comme application console sous le contrôle de l'environnement de débogage Visual Studio. Cela permettra aux points d'arrêt d'être correctement interrompus et gérés.

  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 de l'exécution.

    Une fenêtre de console s'affiche lorsque SQL Server démarre. Lorsque le défilement du texte s'arrête, le dernier message affiche :

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

    SQL Server démarre et commence à traiter les requêtes.

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

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

    Pour d'autres conseils sur l'écriture de procédures stockées étendues, consultez la section relative à SQL Server dans la base de connaissances Microsoft ou la section Programmation des procédures stockées étendues de la documentation SQL Server de MSDN Library.

Voir aussi

Concepts

Débogage de SQL