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 :

Récupération d'un ID pour un insert


Sujet :

MS SQL Server

  1. #1
    Membre régulier
    Inscrit en
    Juillet 2007
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 113
    Points : 76
    Points
    76
    Par défaut Récupération d'un ID pour un insert
    Bonjour tout le monde,

    Voici mon soucis du jour :

    J'effectue des insert dans deux tables différentes à parti d'une troisième table :


    Je procède comme suit :

    INSERT INTO TABLE2 values...
    SELECT FROM TABLE1 values..
    WHERE conditions...


    INSERT INTO TABLE3 values...
    SELECT FROM TABLE1 values...
    WHERE conditions

    Ma table1 sert de pivot en gros.

    Jusque là tout va bien

    Maintenant j'ai besoin de l'id généré par mon insert de la table2 afin de l'insérer dans la table3 pour faire la relation

    Je ne vois pas comment faire si je veux rester en ensembliste.

    Dois je faire un curseur ? Ou un trigger ?

    Ou autres....?

    Merci d'avance de vos conseils

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 888
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 888
    Points : 53 121
    Points
    53 121
    Billets dans le blog
    6
    Par défaut
    Utilisez IDENT_CURRENT('nom_table') pour récupérer l'ID avant INSERTION, Débranchez l'auto incrément et augmentez le du nombre de ligne avec DBCC CHECKIDENT (... RESEED ....)
    Insérez les lignes avec comme ID : LastId + NbLigne + ROW_NUMBER()
    Rebaranchez l'auto incrément
    Vous savez maintenant quelle est la plage d'ID inséré !

    Lisez mon blog sur le sujet : http://blog.developpez.com/sqlpro/p6...ec-sql-server/

    A +

  3. #3
    Membre régulier
    Inscrit en
    Juillet 2007
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 113
    Points : 76
    Points
    76
    Par défaut
    Bonjour et merci de votre réponse.

    J'ai appronfondi votre solution et maintenant tout fonctionne bien.

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

Discussions similaires

  1. [MySQL] Récupération $POST_ pour un insert
    Par claude77 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 13/10/2011, 21h30
  2. [ODBC] Récupération d'une donnée pour insertion dans une autre table
    Par rom950 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 10/03/2006, 17h13
  3. Réponses: 8
    Dernier message: 09/02/2006, 16h11
  4. Réponses: 10
    Dernier message: 22/11/2004, 22h37
  5. Probleme pour les insertion au format etranger
    Par Sandrine75 dans le forum XMLRAD
    Réponses: 5
    Dernier message: 19/03/2003, 10h55

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