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 :

Syntaxe SQL CURSEUR


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 101
    Par défaut Syntaxe SQL CURSEUR
    Bonjour ,

    Débutant sur SQL SERVER , je souhaiterais avoir votre avis sur la syntaxe SQL qui suit, savoir si elle est correct ou pas .

    Lorsque que je l'exécute j'ai une erreur disant que le curseur TableCursor
    n'est pas déclaré


    Voici la requête :

    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
     
    DECLARE @Database nvarchar(100)
    DECLARE @Table nvarchar(255)
    DECLARE @cmd nvarchar(1000)
     
    SET @cmd = 'DECLARE TableCursor CURSOR FOR SELECT table_catalog + ''.'' + table_schema + ''.'' + table_name as tableName   
                        FROM ' + @Database + '.INFORMATION_SCHEMA.TABLES WHERE table_type = ''BASE TABLE'''   
     
       -- create table cursor
       EXEC (@cmd)
     
       OPEN TableCursor
     
       FETCH NEXT FROM TableCursor INTO @Table
       WHILE @@FETCH_STATUS = 0
     
       BEGIN
    	----- Traitement   
              FETCH NEXT FROM TableCursor INTO @Table
       END
     
       CLOSE TableCursor
       DEALLOCATE TableCursor
    Pouvez-vous m'aider ?
    Merci d'avance

  2. #2
    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 : 44
    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,

    La syntaxe est correcte mais comme l'EXEC est exécuté dans un contexte de session différent de la session qui exécute votre requête, cette dernière ne peut pas y accéder, ce qui explique votre problème.

    Que voulez-vous faire exactement comme traitement ?

    @++

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 101
    Par défaut
    Je comprends mieux.

    Je voudrais recupérer les noms de table afin de pouvoir faire une maintenance des index par la suite.

    Merci pour votre réponse.


  4. #4
    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 : 44
    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
    Stockez donc le nom de la table et des index avec leurs caractéristiques de fragmentation et de nombre de pages, d'utilisation, ... dans une table.

    A partir de là vous pouvez faire un WHILE, dans laquelle vous collectez dans une chaîne l'instruction T-SQL qui change à chaque itération, en remplaçant les noms et les options de reconstruction comme il se doit.

    @++

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

Discussions similaires

  1. Syntaxe SQL sous BCB
    Par ORLIK dans le forum C++Builder
    Réponses: 2
    Dernier message: 13/10/2004, 20h47
  2. [PL/SQL] Curseur avec Paramètre
    Par blids dans le forum Oracle
    Réponses: 5
    Dernier message: 10/10/2004, 20h07
  3. Pb configuration et syntaxe SQL
    Par Glloq dans le forum Débuter
    Réponses: 2
    Dernier message: 09/09/2004, 15h17
  4. syntax sql spéciale pour postgresql ???
    Par krimson dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 05/05/2004, 15h23
  5. requete syntaxe sql
    Par tomm dans le forum Bases de données
    Réponses: 4
    Dernier message: 29/04/2004, 16h56

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