IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

Gestion des erreurs sur SQLServer 2005


Sujet :

MS SQL Server

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2006
    Messages : 47
    Points : 38
    Points
    38
    Par défaut Gestion des erreurs sur SQLServer 2005
    Bonjour,

    Je code des procédures stockées qui réalisent toutes sortes d’actions sur les tables (listage, maj, insertion, suppression…) et je cherche à gérer les erreurs (sur SQLServer 2005).

    Je gère les cas standard avec des IF et RAISERROR, j’englobe mes actions d’un try/catch, mais je ne sais pas si c’est la meilleure manière, d’autant que je ne vois plus trop comment mélanger cela avec les rollback.

    Si quelqu’un pouvait m’aiguiller ne serait-ce que vers une bonne doc ça serait très sympa.

    D’avance merci.

    P.S. Si quelqu'un sait comment gérer les erreurs sur les fonctions ça m'intéresse également.

  2. #2
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    Tu peux gérer les erreurs dans les procédures, les triggers et les fonctions de la même façon.
    Effectivement utiliser un contrôle try ... catch est pas mal pour gérer les erreurs:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    SET XACT_ABORT ON; -- si tu souhaites arrêter la transaction dès la première erreur 
    BEGIN TRY
    	BEGIN TRAN;
    	mes transactions;
    	COMMIT TRAN;
    END TRY
    BEGIN CATCH
    	ROLLBACK TRAN;
    	RAISERROR('monErreur', 16, 1);
    	EXEC msdb.dbo.sp_send_dbmail 'destinataire', 'sujet', texte;
    END CATCH;

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2006
    Messages : 47
    Points : 38
    Points
    38
    Par défaut
    Salut,

    Merci pour ta réponse, voici où en est mon squelette :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    SET XACT_ABORT ON; 
    DECLARE @erreur varchar(max)
    BEGIN TRY
      BEGIN TRAN;
        If(ErreurConnue)
          BEGIN
            Select @erreur=FoncQuiRenvoiUnMesDerreurEnrDsLaBase
            RAISERROR (@erreur, 12,1)
          END
        ELSE
          BEGIN
            Mes transactions;
          END    
      COMMIT TRAN;
    END TRY
    BEGIN CATCH
      ROLLBACK TRAN;
      DECLARE @ErrMsg nvarchar(4000), @ErrSeverity int
      SELECT @ErrMsg = ERROR_MESSAGE(), @ErrSeverity = ERROR_SEVERITY()
      RAISERROR(@ErrMsg, @ErrSeverity, 1)
      --EXEC msdb.dbo.sp_send_dbmail 'destinataire', 'sujet', texte;
    END CATCH

Discussions similaires

  1. Gestion des erreurs sur une sauvegarde
    Par Zak Blayde dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 22/05/2008, 00h22
  2. Gestion des erreurs sur les noms des villes
    Par yosryosr dans le forum Pascal
    Réponses: 3
    Dernier message: 18/04/2008, 11h52
  3. gestions des erreurs sur les Noms des villes
    Par yosryosr dans le forum Langage
    Réponses: 2
    Dernier message: 15/04/2008, 12h07
  4. Gestion des erreurs sur une commande multiple
    Par domiq44 dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 05/10/2006, 15h03
  5. [PHP-JS] gestion des erreurs sur liste déroulente
    Par HwRZxLc4 dans le forum Langage
    Réponses: 9
    Dernier message: 28/05/2006, 03h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo