Bonjour,
Je voudrais savoir s'il est possible, dans un mapping, de récupérer les lignes que l'on vient d'insérer, et uniquement celles-là, afin de les utiliser plus loin dans le même mapping.
En effet, j'ai une table qui a pour PK un ID auto-incrémenté (BIGINT IDENTITY(1,1)). J'insère dans cette table une ou plusieurs lignes et je souhaite, dans le même mapping, récupérer l'ID créé afin de l'insérer dans d'autres tables en tant que FK.
Voici un exemple du besoin :
Dans ce mapping, j'insère dans la table DEST1 les lignes présentent dans SRC ce qui me génère X PK. Ensuite, je souhaite repartir de la table DEST1 afin d'utiliser la colonne PK et alimenter les colonnes FK_INTER dans les tables DEST2 et DEST3. Actuellement, le mapping reprend l'ensemble des données présentes dans DEST1 et pas uniquement celles insérées/mises à jour :
Voici les tables et leur contenu :
CREATE TABLE dbo.SRC
(
KEY_1 INT
, KEY_2 INT
, DATA_1 VARCHAR(10)
, DATA_2 VARCHAR(10)
)
CREATE TABLE dbo.DEST1
(
PK INT IDENTITY(1, 1) NOT NULL
, KEY_1 INT
, KEY_2 INT
, LIB VARCHAR(20)
)
CREATE TABLE dbo.DEST2
(
FK_INTER INT
, KEY_1 INT
, KEY_2 INT
, DATA_1 VARCHAR(10)
)
CREATE TABLE dbo.DEST3
(
FK_INTER INT
, KEY_1 INT
, KEY_2 INT
, DATA_2 VARCHAR(10)
)
INSERT INTO dbo.SRC(KEY_1, KEY_2, DATA_1, DATA_2)VALUES(1, 1, 'Ligne1', 'Colonne1')
INSERT INTO dbo.SRC(KEY_1, KEY_2, DATA_1, DATA_2)VALUES(2, 1, 'Ligne2', 'Colonne1')
INSERT INTO dbo.SRC(KEY_1, KEY_2, DATA_1, DATA_2)VALUES(1, 2, 'Ligne1', 'Colonne2')
INSERT INTO dbo.SRC(KEY_1, KEY_2, DATA_1, DATA_2)VALUES(2, 2, 'Ligne2', 'Colonne2')
TRUNCATE TABLE dbo.SRC
INSERT INTO dbo.SRC(KEY_1, KEY_2, DATA_1, DATA_2)VALUES(3, 3, 'Ligne3', 'Colonne3')
Lors de la première exécution, les 4 lignes sont insérées dans DEST1 puis dans DEST2 et DEST3.
Lors de la seconde exécution, après le TRUNCATE TABLE dbo.SRC, on insère certes bien 1 seule ligne mais la table d'intégration contient les 5 lignes de SRC. Il serait possible de faire une jointure entre DEST1 et SRC pour ne conserver qu'une seule ligne mais je souhaite savoir si Stambia permet de faire autrement car ce n'est pas toujours aussi simple (requête d'alimentation complexe donc il faudrait passer par un stage ...).
Mon besoin réel porte en réalité sur une seule ligne à la fois car la source est un fichier XML mais le besoin pour plusieurs lignes est intéressant aussi.
Merci d'avance.
Benjamin