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 :

Try catch procédures stockées


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    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
    Par défaut Try catch procédures stockées
    Bonjour,

    Je suis en train d'essayer d'utiliser TRY - CATCH dans mes procédures stockées pour gérer les cas où l'on tente de mettre à jour / supprimer un enregistrement qui n'existe pas.

    Or pour le moment ça ne fonctionne pas puisqu'il retourne 0 comme si tout avait bien fonctionné.

    Je me demande si ce n'est pas lié au fait que ce type de bloc ne gére que les erreurs dont la gravité est supérieure à 10.

    Pour le moment j'utilise RAISERROR, mais je souhaitais faire ça plus "propre".

    Je ne trouve d'ailleurs pas beaucoup de doc sur le sujet, la plupart des sites proposant le même doc : http://www.4guysfromrolla.com/webtech/041906-1.shtml.

    D'avance merci pour votre aide et à bientôt.

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mai 2007
    Messages : 356
    Par défaut
    Pour répondre de manière rapide, lorsque tu effectues ta modification ou ta suppression tu utilises une clause where pour rechercher tes enregistrements.
    Si cette clause ne correspond à aucun enregistrement alors ilo n'y a pas d'erreurs générées.
    Pour savoir si des enregistrements sont concernés par les modifications il y a deux solutions :

    1/ Effectuer une requête de selection avec un count pour la clause définie. De cette manière, on connaît le nombre d'enregistrements qui seront affectés. Cette solution est en amont du traitement.

    2/ Utiliser la variable globale @@ROWCOUNT afin de connaître le nombre de lignes affectés par la dernière instruction. Cette solution est en aval du traitement.

    Après tout dépend de ce que tu souhaites effectuer comme traitement de reprise.

  3. #3
    Membre averti
    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
    Par défaut
    Oui c'est vrai que grosso modo ma question est c.. puisque ce n'est pas un cas d'erreur.

    Il faut d'abord que je rende les enregistrements de la colonne uniques (là tout de suite je galére pour trouver comment faire en visuel).

    J'ai besoin de gérer les erreurs pour les retourner à mon collégue qui utilise mes PS depuis ses dév en c#.

    @+ et merci.

Discussions similaires

  1. Tri dans une procédure stockée
    Par Shionigami dans le forum InterBase
    Réponses: 0
    Dernier message: 22/04/2010, 16h18
  2. Utilisation de try catch dans une procédure de backup de database
    Par megtrinity dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 05/11/2009, 14h53
  3. Procédure try-catch avec warning
    Par legreg2 dans le forum MATLAB
    Réponses: 2
    Dernier message: 18/10/2007, 13h41
  4. [CR XI] Conserver le tri d'une procédure stockée dans l'état
    Par sinok dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 08/01/2007, 11h54
  5. [Comparatif] Procédures stockées, triggers, etc.
    Par MCZz dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 28/08/2002, 12h27

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