Bonjour,

Je cherche à récupérer automatiquement les identity générées dans un lot d'INSERT afin de conserver la relation dans une table externe des clés de la table emettrice avec la table receptrice

Mon problème se situe sur le fait que je n'arrive pas à ajouter dans l'OUTPUT une colonne appartenant à la table emettrice et n'appartenant pas aux colonnes de la table réceptrice

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
28
29
30
31
32
33
34
35
36
37
38
Createtable TableEntree
(
             [CodeSource] intidentity (1,1),
             [libelle] varchar (60)
)
Createtable TableTest
(
             [ReferenceId] intidentity (1,1),
             [libelle] varchar(60)
)
Createtable TableTestValeurExterne
(
             [ReferenceId] intidentity (1,1),
             [ReferenceId_TableTest] int,
             [CodeSource] int,
             [Source]varchar(12)
)
go
insert into TableEntree (libelle) values ('Valeur1')
insert into TableEntree (libelle) values ('Valeur2')
insert into TableEntree (libelle) values ('Valeur3')
insert into TableEntree (libelle) values ('Valeur4')
go
declare @MyTemporyTabletable
(
             [ReferenceId_TableTest] int,
             [CodeSource] varchar(12)
)
INSERT INTO TableTest([libelle]) 
OUTPUT scr.[CodeSource] , INSERTED.ReferenceId INTO @MyTemporyTable ( [ReferenceId_TableTest], [CodeSource] )
SELECT [libelle]
FROM TableEntree src

insert into TableTestValeurExterne ( [ReferenceId_TableTest],[CodeSource],[Source] )
select [ReferenceId_TableTest] ,[CodeSource], 'TableEntree' from @MyTemporyTable
GO
cordialement