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

MS SQL Server Discussion :

Clause OUTPUT avec INSERT


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mars 2005
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 68
    Par défaut Clause OUTPUT avec INSERT
    Bonjour,

    J'aimerais savoir s'il est possible de récupérer des valeurs autres que celles contenu dans la "table" INSERTED lors d'un insert avec la clause OUTPUT ?

    Explications :
    J'ai une table qui me sert à générer des données dans une autre table. Cependant, apres la génération, il me faut la correspondance entre l'ID d'origine et l'ID généré.

    Idée :
    INSERT INTO Tbl1 (Id1, Val1)
    OUTPUT INSERTED.Id1, TblGen.Id2
    INTO @Tmp
    SELECT
    Id2,
    Val2
    FROM TblGen

    Cependant, l'erreur généré est : 'Impossible de lier la rubrique TblGen.Id2...'

  2. #2
    Membre éclairé
    Inscrit en
    Mars 2005
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 68
    Par défaut
    J'aime pas trop insister, mais j'ai vraiment besoin d'une réponse, même si c'est pour entendre dire que c'est pas jouable.

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mai 2007
    Messages : 356
    Par défaut
    Pour faire simple, tu ne peux pas avoir TblGen.id en sortie car ton INSERT s'effectue sur ta table Tbl1. Je te conseillerai de passer par une procédure stockée afin de décomposer ton traitement.

  4. #4
    Membre éclairé
    Inscrit en
    Mars 2005
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 68
    Par défaut
    Je suis déja dans une procédure stocké. Mais je ne comprends pas ce que ça peut changer.

  5. #5
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Par défaut
    Bonjour,

    Je ne suis pas sûr que l'on puisse faire une jointure sur un OUTPUT, c'est à tenter pour voir ce qu'en dit l'analyseur de requêtes

    Si cela ne fonctionne pas, tu peux faire 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
    CREATE @maTableTempo TABLE
    (
    	maColonne1 monType1,
    	maColonne2 monType2,
    	...
    	maColonneN monTypeN
    );
     
    INSERT maTable
    OUTPUT INSERTED.maColonne1,
    		INSERTED.maColonne2,
    		...,
    		INSERTED.maColonneN
    INTO maTableTempo
    SELECT maColonne1, maColonne2, ..., maColonneN
    FROM monAutreTable;
     
    SELECT maColonne1, maColonne2, monAutreColonne1
    FROM monAutreTable2
    JOIN (SELECT maColonneN FROM @maTableTempo) monEnsemble
    	ON monEnsemble.maColonneN = monAutreTable2.maColonneMonAutreTable2N;
    Et tu devrais avoir ce que tu voulais

Discussions similaires

  1. Problem avec insertion de l'heure
    Par moniphal dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 29/04/2005, 11h27
  2. [ADO.NET] Problème avec Insert dans base de données
    Par mpascolo dans le forum Accès aux données
    Réponses: 9
    Dernier message: 24/01/2005, 09h36
  3. probleme clé sequentiel avec insert into
    Par shake dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 08/06/2004, 15h54
  4. Clause IN avec null
    Par Pari dans le forum Langage SQL
    Réponses: 3
    Dernier message: 17/03/2004, 12h46
  5. STL : std::set problème avec insert ...
    Par Big K. dans le forum MFC
    Réponses: 13
    Dernier message: 08/11/2003, 01h02

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