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 :

[SQL2K][TSQL] Curseur : Requête select_statement dynamique


Sujet :

MS SQL Server

  1. #1
    Candidat au Club
    Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2
    Points : 3
    Points
    3
    Par défaut [SQL2K][TSQL] Curseur : Requête select_statement dynamique
    Bonjour,

    J'ai une procédure stockée qui a un argument @REQUETE qui contient la requête select_statement du curseur à l'intérieur de la procédure stockée. Le problème est que je n'arrive pas à dire au curseur que cet argument est la requête select_statement.
    Voici le code de ma procédure stockée :
    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
     
    -- création de la proc stock
    create procedure sp_Numerotation2
    @REQUETE varchar(8000)
    as
    begin  
      declare @cpt as int
     
      -- création du curseur
      declare curseur cursor local optimistic for
      exec(@REQUETE) -- ceci ne fonctionne pas
      for update
     
      -- ouverture du curseur
      set @cpt=0
      open curseur
      FETCH next from curseur
      while @@FETCH_STATUS = 0
        begin
          set @cpt=@cpt+1
          update facture set numfact=@cpt where current of curseur
          FETCH next from curseur
        end
    end
    Par avance, merci pour votre aide.

  2. #2
    Candidat au Club
    Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Solution trouvée !
    J'ai trouvé la solution optimale et sans curseur !
    Voici le code :
    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
     
    -- numérotation des factures
    create procedure sp_numerotation
    @REQUETE text,@FirstNumFact int
    as
    begin 
    	declare @cpt int
     
    	exec(@REQUETE)
    	set @cpt=@FirstNumFact	
     
    	DECLARE @SQL VARCHAR(8000)
    	DECLARE @id int
    	-- tant qu'il y a au moins une facture à traiter
    	WHILE EXISTS(SELECT * FROM factsansnum WHERE  numfact is null)
    	BEGIN
    	   SET @id = (SELECT TOP 1 idfacture FROM factsansnum WHERE numfact is null ORDER  BY 1)
    	   SET @SQL = 'UPDATE facture set numfact='+cast(@cpt as varchar(10))+' where idfacture=' + cast(@id as varchar(10))          
    	   EXEC (@SQL)
     
    	   UPDATE factsansnum SET numfact=1 WHERE idfacture=@id
    		set @cpt=@cpt+1
    	END
     
    	-- supprimez la table temporaire de traitement
    	DROP TABLE factsansnum
    end

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 25/01/2007, 14h12
  2. [SQL2K][TSQL]Création de BDD via script.
    Par Spiegel dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 28/03/2006, 11h08
  3. Requête crosé dynamique avec paramètres saisi
    Par tamerlan dans le forum Access
    Réponses: 3
    Dernier message: 23/03/2006, 14h30
  4. requête croisée dynamique
    Par gregius dans le forum Access
    Réponses: 8
    Dernier message: 17/03/2006, 11h24
  5. [SQL2K] [TSQL] Probleme de WHILE ???
    Par virtualjayce dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 17/02/2006, 12h28

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