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.
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 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
Bien évidemment il me sort une erreur car l'usage de IDnom_Organismes n'est pas autorisédans ce contexte.
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
Quelqu'un peut-il m'aider ?
Partager