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 :

[Sql Server 8.0]Requête dans une chaîne avec Cursor à executer


Sujet :

MS SQL Server

  1. #1
    Membre actif Avatar de Nicodemus
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    242
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 242
    Points : 212
    Points
    212
    Par défaut [Sql Server 8.0]Requête dans une chaîne avec Cursor à executer
    Bien le bonjour, j'ai une petite question à vous soumettre car par manque de conaissance je suis coincé.

    Voilà, j'ai un procédure stockée qui me renvoit un cursor. Jusque là pas de soucis. maintenant je veux modifier la requête dynamiquement en fonction des paramètres reçus. Ainsi je souhaite construire ma requêtre dynamiquement dans un varchar pour au final l'exécuter.

    je peux faire par exemple :

    declare @requete nvarchar(500)
    SET @requete = 'Select....'
    exec sp_executesql @requete



    Seulement à cause du cursor à renvoyer, ça ne fonctionne pas. En effet, ma procédure sotckée commence ainsi :

    SET @mon_cursor = CURSOR STATIC FOR la requête.....


    Bref ma question est donc, comment faire pour pouvoir construire sa requête dynamiquement, tout en assurant une bonne déclaration du cursor.


    PS : j'ai déjà essayé comme ceci :


    declare @requete nvarchar(500)
    SET @requete = 'SET @mon_cursor = CURSOR
    STATIC FOR... la requêtre'

  2. #2
    Membre actif Avatar de Nicodemus
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    242
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 242
    Points : 212
    Points
    212
    Par défaut
    J'oubliais.... merci d'avance pour vos réponses

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 849
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 849
    Points : 52 978
    Points
    52 978
    Billets dans le blog
    6
    Par défaut
    Vous pouvez utiliser du SQL dynamique pour ce faire. Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    DECLARE @my_cur CURSOR
    EXEC sp_executesql
         N'SET @my_cur = CURSOR STATIC FOR 
           SELECT name FROM dbo.sysobjects; 
           OPEN @my_cur',
         N'@my_cur cursor OUTPUT', @my_cur OUTPUT
    FETCH NEXT FROM @my_cur
    A +

Discussions similaires

  1. [Sql Server] Fonction de recherche dans une chaine
    Par pierre031183 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 06/01/2011, 16h16
  2. [SQL SERVER 2K]Champ tronqué dans une requête.
    Par MeHo_ dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 26/10/2009, 11h18
  3. [SQL Server 8] Un UNION dans une VIEW
    Par Baquardie dans le forum Langage SQL
    Réponses: 1
    Dernier message: 30/05/2006, 21h36
  4. [ms sql server 2000] top 1 dans une condition de jointure ?
    Par sylvkin dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 18/10/2005, 17h10
  5. ASP/ SQL Server : resultat de RS dans une cellule.
    Par joe_le_mort dans le forum ASP
    Réponses: 2
    Dernier message: 11/08/2005, 13h26

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