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 :

USE VARIABLE CURSEUR


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 39
    Par défaut USE VARIABLE CURSEUR
    Bonjour,

    Je souhaite faire varier dans un traitement le nom de la base de données.

    J'ai donc créer un curseur comme suit, mais la ligne
    execute('Use ' + @db)
    ne fonctionne pas.

    Merci d'avance
    ----------------------------------

    DECLARE @db nvarchar(128)
    declare curs1 cursor for SELECT name FROM master.sys.databases

    open curs1
    fetch next from curs1 into @db

    WHILE @@FETCH_STATUS = 0
    BEGIN
    execute('Use ' + @db)
    /* Ici Traitement Spécifique */
    fetch next from curs1 into @db
    END
    CLOSE curs1
    DEALLOCATE curs1

  2. #2
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    Bonjour,

    Le contexte de la base de données n'est valable qu'à l'intérieur de l'instruction EXECUTE. C'est la raison pour laquelle votre traitement ne doit pas fonctionner.

    ++

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 39
    Par défaut use database curseur
    Merci pour cette réponse, Je comprend mieux dans ce cas.

    mais si je pose USE @db

    j'obtiens le message 102 : Syntaxe incorrecte vers @db

    Une solution est elle possible ?

    Merci d'avance

  4. #4
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    Oui,

    En fait il faut procéder de la sorte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    EXECUTE('Use ' + @db + ' ;PRINT DB_NAME() /* Traitement à mettre ici */')
    ++

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

Discussions similaires

  1. Réponses: 15
    Dernier message: 25/10/2012, 12h32
  2. variables, curseurs et autres
    Par Fredche dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 23/04/2012, 10h44
  3. using variable javascript in java (jsp)
    Par jack_maoi dans le forum Struts 1
    Réponses: 3
    Dernier message: 09/01/2009, 11h00
  4. Problème variable Curseur
    Par dsr57 dans le forum Développement
    Réponses: 1
    Dernier message: 29/08/2008, 19h51
  5. Variable curseur et nom de champs en string ? HLP
    Par AyaGizmo dans le forum SQL
    Réponses: 8
    Dernier message: 09/10/2007, 16h40

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