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

Développement SQL Server Discussion :

Requête SQL Dynamique.


Sujet :

Développement SQL Server

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 12
    Par défaut Requête SQL Dynamique.
    Bonjour.

    Débutant en SQL dynamique, Je n'arrive pas à résoudre le problème généré par la requête suivante. Je suis sur SQL SERVER 2005 SP3.

    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
    39
    40
    41
    42
    43
    DEClARE 
    @VAR1 INT,
    @VAR2 VARCHAR(1000),
    @VAR3 VARCHAR(1000),
    @VAR4 INT,
    @VAR5 VARCHAR(1000),
    @VAR6 VARCHAR(1000)
     
    INSERT INTO TmpOldDevis     
    (IDOldDEVIS)
    Select Devis.IDDevis From Devis where Devis.IDPropositions = 36524
     
    INSERT INTO TmpNewDEVIS      
    (IDNewDEVIS)
    Select Devis.IDDevis From Devis where Devis.IDPropositions = 37899
     
     
    SET @VAR1 = 1
    BEGIN TRAN
    WHILE @VAR1  <= (Select Count(*) From TmpOldDevis)
    BEGIN
    SET @VAR2 ='SELECT (IDOldDEVIS) FROM TmpOldDevis WHERE Temp_IDOldDEVIS ='+CAST(@VAR1 as VARCHAR(3))
     EXECUTE(@VAR2);
    SET @VAR3= 'INSERT INTO TmpLignesMateriels(IDLignesMateriels,IDDevis,IDProduits,Designation,Quantité,PrixNetHT,TotalHT,PrixAchatHT,NumeroLigne,IDTVA,
      RemiseAnnuelle,RemiseComplementaire,PrixNetHT_RA,TotalHT_RA)
      SELECT IDLignesMateriels,IDDevis,IDProduits,Designation,Quantité,PrixNetHT,TotalHT,PrixAchatHT,NumeroLigne,IDTVA,
      RemiseAnnuelle,RemiseComplementaire,PrixNetHT_RA,TotalHT_RA  FROM LignesMateriels Inner Join
      TmpOldDevis On LignesMateriels.IDDevis = TmpOldDevis.IDOldDEVIS WHERE LignesMateriels.IDDevis = TmpOldDevis.IDOldDEVIS and TmpOldDevis.Temp_IDOldDEVIS='+CAST(@VAR1 as VARCHAR(3)) /*+CAST(159021 as VARCHAR(6))159021' +CAST(159021 as VARCHAR(6))+*//*TmpOldDevis.IDOldDEVIS and TmpOldDevis.Temp_IDOldDEVIS='+CAST(@VAR1 as VARCHAR(3))   */ 
    print @var3
    EXECUTE(@VAR3);
    SET @VAR5 ='(SELECT (IDNewDEVIS) FROM TmpNewDEVIS WHERE Temp_IDNewDEVIS = '+CAST(@VAR1 as VARCHAR(3))+')'
    EXECUTE(@VAR5);
     
    SET @VAR6 ='INSERT INTO LignesMateriels(IDDevis,IDProduits,Designation,Quantité,PrixNetHT,TotalHT,PrixAchatHT,NumeroLigne,IDTVA,
    RemiseAnnuelle,RemiseComplementaire,PrixNetHT_RA,TotalHT_RA)
    SELECT '+@VAR5+',IDProduits,Designation,Quantité,PrixNetHT,TotalHT,PrixAchatHT,NumeroLigne,IDTVA,RemiseAnnuelle,RemiseComplementaire,PrixNetHT_RA,TotalHT_RA
    FROM TmpLignesMateriels Inner Join TmpOldDevis On TmpLignesMateriels.IDDevis = TmpOldDevis.IDOldDEVIS WHERE TmpOldDevis.IDOldDEVIS = TmpOldDevis.IDOldDEVIS and TmpOldDevis.Temp_IDOldDEVIS='+CAST(@VAR1 as VARCHAR(3))
     
     
    EXECUTE(@VAR6);
    SET @var1 = @var1+1
    END
    COMMIT TRAN
    J'ai systématiquement le message suivant "Le nom de la variable @P1 a déjà déclaré. les noms des variables doivent être unique dans un lot de requêtes ou une procédure stockée".
    SQL State 42000
    SQL ERROR 134.

    Par avance, merci de votre aide.
    Images attachées Images attachées  

Discussions similaires

  1. Requête SQL dynamique avec nom de table dans une variable
    Par jonjack dans le forum SQL Procédural
    Réponses: 9
    Dernier message: 15/09/2011, 15h37
  2. [XL-2002] Requète SQL dynamique en Excel VBA.
    Par cotmar dans le forum Excel
    Réponses: 2
    Dernier message: 23/12/2009, 20h11
  3. Jasper /.Net /Requête SQL dynamique
    Par dedein84 dans le forum Jasper
    Réponses: 7
    Dernier message: 26/09/2008, 18h12
  4. Transformer une requête sql dynamique
    Par ttttnht dans le forum Sybase
    Réponses: 5
    Dernier message: 24/07/2007, 08h54
  5. Réponses: 3
    Dernier message: 04/06/2007, 13h29

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