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

Langage SQL Discussion :

INSERT sur plusieurs tables


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 120
    Points : 48
    Points
    48
    Par défaut INSERT sur plusieurs tables
    je cherche à insérer des valeurs à l'aide d'une procédure stockée dans deux tables "Nom_Organismes" et "Adr_Organismes" jointes par une FK et je n'y arrive pas.
    j'ai essayé diverses choses mais je me heurte au fait que je n'arrive pas à passer la clé primaire de la première à la seconde. Je précise que la génération de ladite clé "IDnom_Organismes" est laissée à l'initiative du SGBDR.
    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 TABLE [dbo].[Nom_Organismes] (
    	[IDnom_Organismes] [int] IDENTITY (1, 1) NOT NULL ,
    	[Nom] [varchar] (100) COLLATE French_CI_AS NOT NULL ,
    	[Sigle] [varchar] (20) COLLATE French_CI_AS NULL 
    ) ON [PRIMARY]
    GO
     
    CREATE TABLE [dbo].[Adr_Organismes] (
    	[IDAdr_Organismes] [int] IDENTITY (1, 1) NOT NULL ,
    	[IDnom_Organismes] [int] NOT NULL ,
    	[Adresse] [varchar] (255) COLLATE French_CI_AS NOT NULL ,
    	[Cp] [char] (5) COLLATE French_CI_AS NOT NULL ,
    	[Ville] [varchar] (30) COLLATE French_CI_AS NOT NULL ,
    	[Tel] [varchar] (14) COLLATE French_CI_AS NULL
    ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
    GO
    Ma procédure :
    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
    23
    24
    25
    26
    27
     
    CREATE PROCEDURE dbo.Organisme_Insert
    (
    	@Sigle char(20),
    	@Nom char(100),
    	@Adresse char(255),
    	@CP char(5),
    	@Ville char(30),
    	@Tel char(14)
    )
    AS
     
    BEGIN
     
    INSERT INTO Nom_Organismes
           (Sigle, Nom)
    VALUES (@Sigle, @Nom)
     
    SELECT IDnom_Organismes FROM Nom_Organismes WHERE Nom_Organismes.Nom = @Nom
     
    INSERT INTO Adr_Organismes
    	(IDnom_Organismes, Adresse, Cp, Ville, Tel)
    VALUES Nom_Organismes.IDnom_Organismes, @Adresse, @CP, @Ville, @Tel)
     
     
    END
    GO
    Bien évidemment il me sort une erreur car l'usage de IDnom_Organismes n'est pas autorisédans ce contexte.
    Quelqu'un peut-il m'aider ?

  2. #2
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 425
    Points : 358
    Points
    358
    Par défaut
    salut

    Essaies ceci
    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
    23
    24
    25
    26
    27
    CREATE PROCEDURE dbo.Organisme_Insert 
    ( 
       @Sigle char(20), 
       @Nom char(100), 
       @Adresse char(255), 
       @CP char(5), 
       @Ville char(30), 
       @Tel char(14) 
    ) 
    AS 
    declare @MaVariable Varchar(20)
     
    BEGIN 
     
    INSERT INTO Nom_Organismes 
           (Sigle, Nom) 
    VALUES (@Sigle, @Nom) 
     
    SET @MaVariable = SELECT IDnom_Organismes FROM Nom_Organismes WHERE Nom_Organismes.Nom = @Nom 
     
    INSERT INTO Adr_Organismes 
       (IDnom_Organismes, Adresse, Cp, Ville, Tel) 
    VALUES (@MaVariable , @Adresse, @CP, @Ville, @Tel) 
     
     
    END 
    GO
    OS:Win 2000 Pro, WIN XP
    SGBD: MS Sql Server, Oracle
    Environnement: VS.NET 2002, JBuilder
    Web: www.ndestudents.com

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 120
    Points : 48
    Points
    48
    Par défaut
    il me dit syntaxe incorrecte vers le mot SELECT

  4. #4
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 425
    Points : 358
    Points
    358
    Par défaut
    Une erreur s'est produite.

    fais ceci
    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
    23
    24
    25
    26
    27
    CREATE PROCEDURE dbo.Organisme_Insert 
    ( 
       @Sigle char(20), 
       @Nom char(100), 
       @Adresse char(255), 
       @CP char(5), 
       @Ville char(30), 
       @Tel char(14) 
    ) 
    AS 
    declare @MaVariable Varchar(20) 
     
    BEGIN 
     
    INSERT INTO Nom_Organismes 
           (Sigle, Nom) 
    VALUES (@Sigle, @Nom) 
     
    SELECT @MaVariable = IDnom_Organismes FROM Nom_Organismes WHERE Nom_Organismes.Nom = @Nom 
     
    INSERT INTO Adr_Organismes 
       (IDnom_Organismes, Adresse, Cp, Ville, Tel) 
    VALUES (@MaVariable , @Adresse, @CP, @Ville, @Tel) 
     
     
    END 
    GO
    OS:Win 2000 Pro, WIN XP
    SGBD: MS Sql Server, Oracle
    Environnement: VS.NET 2002, JBuilder
    Web: www.ndestudents.com

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 120
    Points : 48
    Points
    48
    Par défaut
    super ! ça passe.
    je te remercie

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

Discussions similaires

  1. [1.x] formulaire d'insertion sur plusieurs tables à fois
    Par belgacem.tlili dans le forum Symfony
    Réponses: 4
    Dernier message: 24/02/2010, 20h42
  2. Faire un Insert sur plusieurs tables liées
    Par tiboleo dans le forum ASP.NET
    Réponses: 1
    Dernier message: 07/02/2010, 23h16
  3. INSERT sur plusieurs tables
    Par ROMS77 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 10/06/2009, 14h53
  4. Requête INSERT sur plusieurs tables
    Par sircus dans le forum Langage SQL
    Réponses: 5
    Dernier message: 20/01/2009, 08h30
  5. INSERT sur plusieurs tables.
    Par Nethervoid21 dans le forum SQL Procédural
    Réponses: 7
    Dernier message: 18/11/2006, 11h22

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