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

Décisions SGBD Discussion :

[Procédure stockée]Insert avec renvoi clé primaire?


Sujet :

Décisions SGBD

  1. #1
    Candidat au Club
    Inscrit en
    Juin 2002
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 4
    Points : 3
    Points
    3
    Par défaut [Procédure stockée]Insert avec renvoi clé primaire?
    ----------------
    Ajoutées par sinarf, merci d'y penser la prochaine fois
    ----------------


    Bonjour,

    J'utilise des Procédures Stockées pour insérer des données dans mes tables. La clé primaire est un compteur qui s'incrémente automatiquement.

    Je veux que la clé primaire me soit retourné après cet ajout.

    Comment faire pour renvoyer la clé primaire à part en faisant par exemple :

    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
    CREATE PROCEDURE SGCP_AddMaTable
    (
    	@Champ2 nvarchar(15),
    	@Champ3 int
    )
    AS
     
    INSERT INTO MaTable
    (
    	Champ2,
    	Champ3
    )
    VALUES
    (
    	@Champ2,
    	@Champ3 
    )
    GO
    suivi de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT Cle
    FROM maTable
    WHERE Champ2=@Champ2
    AND Champ3=@Champ3
    (Si il y a des doublons, ne marche pas)

    MERCI d'avance

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 75
    Points : 61
    Points
    61
    Par défaut
    Je cherche exactement la même solution. Mais par programmation Delphi.

    Il devrait avoir un moyen tout fait pour qu'il renvoit l'idauto d'un insert !

    C'est tellement primordial que l'on ne peut pas se permettre de faire 2 requete de suite, surtout si il y a une multitude d'insertion en même temps sur une appli réseaux ! (risque de récupérer la clé d'un autre).

  3. #3
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 222
    Points : 19 551
    Points
    19 551
    Billets dans le blog
    25
    Par défaut
    et pourquoi pas

    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
    CREATE PROCEDURE SGCP_AddMaTable 
    ( 
       @Champ2 nvarchar(15), 
       @Champ3 int 
    ) 
     
    AS 
    BEGIN
    DECLARE @K  integer
     
    BEGIN TRAN
    INSERT INTO MaTable 
    (    Champ2,    Champ3 ) 
    VALUES (    @Champ2,    @Champ3 ) 
     
    SELECT @K=MAX(Cle) from MaTable
    COMMIT
     
    return @K
    END
    L'avantage d'utiliser le BEGIN TRAN, c'est qu'il verrouillera la page empêchant d'autres insertions intempestives. Ceci étant dit, quel est votre SGBDR (ça m'a l'air d'etre du T-SQL) ? Quel est le schéma de verrouillage ?
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

  4. #4
    Candidat au Club
    Inscrit en
    Juin 2002
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Effectivement c'est du T-SQL...
    Merci pour cette réponse.

    C'est tout à fait ce que je voulais faire !!!

    _________
    Busmic

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

Discussions similaires

  1. [WD10] Procédure stockée SQLServer avec SQLExec()
    Par alabakan dans le forum WinDev
    Réponses: 7
    Dernier message: 31/08/2007, 10h24
  2. Procédures stockées INSERT.
    Par notfoune dans le forum MFC
    Réponses: 2
    Dernier message: 29/11/2005, 10h35
  3. procédure stockée insert multiple
    Par gigi34 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 20/09/2005, 10h37
  4. Procédure stockée - insertion >> Merci Mr Youssef
    Par Samish dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 03/08/2005, 20h31
  5. Procédure stocké:Insert et renvoie de la clé primair
    Par caramel dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 17/04/2003, 09h34

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