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 :

Gerer des codes retour avec BulK Insert


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti Avatar de Macfurp
    Inscrit en
    Octobre 2006
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 62
    Par défaut Gerer des codes retour avec BulK Insert
    Bonjour,

    je cherche un moyen de retourner un code retour spécifique dans une procédure stockée qui effectue du Bulk Insert pour qu'en cas de problème de chargement sur des clés en double par exemple le traitement qui appelle la procédure soit informé de l'anomalie et puisse interrompre son traitement.

    Je ne suis pas assez expert (ni imaginatif d'ailleurs) pour trouver une solution, merci de vos réponses.

  2. #2
    Membre très actif Avatar de Sacha999
    Inscrit en
    Mars 2007
    Messages
    294
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Mars 2007
    Messages : 294
    Par défaut
    Tu mets un contrainte d'unicité sur la colonne que tu ne veux pas voir en double. Ainsin lors du Bulk Insert, ca va planter si il y a un doublon, le BulkInsert sera annulé, aucune lignes ne sera inseré.

  3. #3
    Membre averti Avatar de Macfurp
    Inscrit en
    Octobre 2006
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 62
    Par défaut
    La contrainte d'unicité est déjà en place, j'ai bien ce message sur le Bulk Insert :
    Msg 2627, Niveau 14, état 1, Serveur PATOCHE, Ligne 1
    Violation de la contrainte PRIMARY KEY 'PK_TR1'. Impossible d'insérer une clé en double dans l'objet 'TTAR1'.

    Le Bulk insert est effectué par une proc stoc appellé par une autre procédure, ce que je souhaite c'est en cas d'erreur sur le Bulk pouvoir envoyer un code retour spécifique en retour au programme appelant.

  4. #4
    Membre très actif Avatar de Sacha999
    Inscrit en
    Mars 2007
    Messages
    294
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Mars 2007
    Messages : 294
    Par défaut
    Bah c'est pas dur, dans ce cas dans la 2eme SP, celui qui execute le BULK INSERT, juste apres cette instruction, tu fais un test pour savoir si une erreur a eu lieu:
    SET @Erreur = @@ERROR
    IF @Erreur <> 0
    GOTO Label_Erreur
    ELSE
    RETURN 0


    Label_Erreur:
    RETURN -1


    Et pour recuperer le code dans la 1er SP tu fais
    EXEC @RetourCode = ProcedureStockeQuiContientBulkInsert

    Ainsi @RetourCode contient un code que tu testera.

  5. #5
    Membre averti Avatar de Macfurp
    Inscrit en
    Octobre 2006
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 62
    Par défaut
    c'est très exactement ce que je cherchais.

    MERCI.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème avec l'ordre d'insertion des lignes avec BULK INSERT
    Par TomtomGesti dans le forum Développement
    Réponses: 3
    Dernier message: 18/07/2014, 16h50
  2. Pas d'ajout des lignes avec BULK INSERT
    Par beurknbba dans le forum Développement
    Réponses: 2
    Dernier message: 04/09/2009, 10h28
  3. urlopen et gestion des codes retour
    Par gerard tarquin dans le forum Réseau/Web
    Réponses: 5
    Dernier message: 21/05/2007, 17h20
  4. gerer les codes retour pl/sql
    Par nadir2 dans le forum PL/SQL
    Réponses: 3
    Dernier message: 27/02/2007, 14h32
  5. Message d'erreur avec Bulk Insert
    Par Shivas dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 18/07/2005, 12h03

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