Procédure pas à pas : débogage d'un déclencheur SQL CLR

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.

Cet exemple explique comment déboguer un déclencheur CLR SQL. Il utilise la table Contact dans l'exemple de base de données AdventureWorks qui est l'une des bases de données installées avec SQL Server 2005. L'exemple crée un déclencheur d'insertion CLR dans la table Contact, puis l'exécute en mode pas à pas détaillé.

Remarque :

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 un déclencheur CLR SQL :

  1. Dans un nouveau projet SQL Server, établissez une connexion à la base de données AdventureWorks. Pour plus d'informations, consultez Comment : se connecter à une base de données.

  2. Créez un déclencheur à l'aide du code dans la première section d'exemple ci-dessous et nommez-le iContact.cs. Pour plus d'informations, consultez Comment : développer avec le type de projet SQL Server.

  3. Ajoutez un script qui teste le déclencheur en l'obligeant à se déclencher. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le répertoire TestScripts, cliquez sur Ajouter un script de test et insérez le code de la deuxième section d'exemple ci-dessous. Enregistrez le fichier avec le nom truContact.sql. Cliquez avec le bouton droit sur le nom du fichier et cliquez sur Définir comme script de débogage par défaut.

  4. Définissez les points d'arrêt dans iContact.cs, puis cliquez sur Démarrer dans le menu Déboguer pour compiler, déployer et effectuer un test unitaire sur le projet. Lorsque le pointeur d'instruction, désigné par une flèche jaune, apparaît sur le point d'arrêt, cela signifie que vous êtes en train de déboguer votre fonction.

  5. Testez différentes fonctionnalités de débogage.

    1. Dépassez l'instruction instanciant le SqlTriggerContext.

    2. Ouvrez la fenêtre Variables locales. Remarquez que vous pouvez ouvrir la variable triggContext, qui est un SqlTriggerContext, et examiner ses membres. Pour plus d'informations, consultez Comment : utiliser les fenêtres des variables du débogueur.

      Remarque :

      Il est possible que le serveur ne reflète pas les modifications apportées aux valeurs des variables dans les fenêtres du débogueur. Pour plus d'informations, consultez Limitations du débogage SQL.

    3. Sélectionnez Pas à pas détaillé dans le menu Déboguer pour passer à la ligne suivante dans la procédure stockée. Remarquez que l'exécution a instancié la valeur de la variable sqlP de type SqlPipe.

    4. Ouvrez la fenêtre Espion. Faites glisser la variable sqlP n'importe où dans la fenêtre Espion. La variable est désormais ajoutée à la liste des variables espionnées. Pour plus d'informations, consultez Comment : utiliser les fenêtres des variables du débogueur.

      Remarque :

      Vous pouvez également modifier les valeurs des variables dans la fenêtre Espion.

    5. Dans l'Éditeur de texte, cliquez avec le bouton droit sur la dernière ligne, puis cliquez sur Insérer un point d'arrêt.

    6. Dans le menu Déboguer, cliquez sur Continuer, pour que le débogueur exécute le code jusqu'au nouveau point d'arrêt.

  6. Cliquez de nouveau sur Continuer pour terminer de déboguer le déclencheur. Un message apparaît dans la fenêtre Sortie, qui déclare que le déclencheur a été déployé avec succès et affiche le résultat de l'exécution des commandes dans le fichier truContact.sql.

Exemple

Voici le code servant à créer le déclencheur utilisé dans cet exemple.

using System;
using System.Data;
using System.Data.Sql;
using Microsoft.SqlServer.Server;


public partial class Triggers
{
      // Enter existing table or view for the target and uncomment the attribute line.
      [Microsoft.SqlServer.Server.SqlTrigger (Name="Trigger1", Target="primes", Event="FOR UPDATE")]
      public static void Trigger1()
      {
            SqlTriggerContext triggContext = SqlContext.TriggerContext;
            SqlPipe sqlP = SqlContext.Pipe;
            sqlP.Send("primes inserted!");
      }
}

Voici le script de test qui provoquera le déclenchement du déclencheur.

UPDATE Person.Contact SET MiddleName = 'A' WHERE ContactID = 8

Voir aussi

Tâches

Comment : créer et exécuter un déclencheur SQL Server CLR

Autres ressources

Débogage d'une base de données SQL CLR