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

Administration SQL Server Discussion :

nombre total des enregistrements [2005]


Sujet :

Administration SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 083
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 083
    Par défaut nombre total des enregistrements
    Bonjour,
    je veux sortir le nombre des enregistrements dans les tables dont les noms sont dans la table PSRECDEFN.

    donc j'ai lancé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select count(*) from (SELECT RECNAME FROM PSRECDEFN WHERE RECTYPE = 0 ORDER BY RECNAME)
    Mais je reçois :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Msg 1033, Level 15, State 1, Line 1
    The ORDER BY clause is invalid in views, inline functions, derived tables, subqueries, and common table expressions, unless TOP or FOR XML is also specified.
    Merci pour votre aide.

    Idéalement je souhaite avoir sur la même ligne le nom de chaque table. Comment faure ?

    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    NOM      ENREGISTREMENT
    ----      ------------------
    TABLE1  256
    TABLAE2 368
    D'avance merci.

  2. #2
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    Citation Envoyé par big1 Voir le message
    Bonjour,
    je veux sortir le nombre des enregistrements dans les tables dont les noms sont dans la table PSRECDEFN.

    donc j'ai lancé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select count(*) from (SELECT RECNAME FROM PSRECDEFN WHERE RECTYPE = 0 ORDER BY RECNAME)
    Mais je reçois :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Msg 1033, Level 15, State 1, Line 1
    The ORDER BY clause is invalid in views, inline functions, derived tables, subqueries, and common table expressions, unless TOP or FOR XML is also specified.
    Merci pour votre aide.

    Idéalement je souhaite avoir sur la même ligne le nom de chaque table. Comment faure ?

    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    NOM      ENREGISTREMENT
    ----      ------------------
    TABLE1  256
    TABLAE2 368
    D'avance merci.
    Pour le message d'erreur, c'est car vous mettez une clause ORDER BY dans une sous-requête (subqueries dans le message d'erreur).
    Après, je ne pense pas que ce que vous vouliez faire soit possible. Je pense qu'il faudra passer par du sql dynamique si ça doit se faire en une seule étape.
    Si c'est juste pour faire ça manuellement, vous pouvez faire comme ceci :
    Vous exécutez ceci (en l'adaptant à vos besoin... ici j'ai pris toutes les tables du schéma dbo).
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT    
            'SELECT ''' + TABLE_NAME + ''', COUNT(*) FROM ' + TABLE_SCHEMA + '.' + TABLE_NAME
     
    FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'DBO'
    Le résultat sera une liste de requête. Vous copiez-collez ces requêtes dans une nouvelle fenêtre de SSMS et vous aurez votre résultat en les exécutant.

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 083
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 083
    Par défaut
    merci.
    Il rend zéro ligne ne rend pas de script compté.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    (0 row(s) affected)
    Ne devrait-il être possible de sortir les noms et le nombre de lignes d'une suele requête ?

  4. #4
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Par défaut
    Bonjour,

    Pouvez-vous détailler un peu le contexte ?

    Quel est le but de tout ça, et pourquoi le nom des tables pour lesquelles effectuer ce décompte sont-ils dans une table ?

    Quelle est la volumétrie des tables visée ?

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 083
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 083
    Par défaut
    Bonjour,
    et merci.
    Il s'agit d'une base de données pour un ERP (PeopleSoft) donc toutes les noms des tables de l'application sont tous dans la table PSRECDEFN (peoplesoft record definition).
    Et le but est de sortir les nombres d'enregistrements.

    Merci d'avance.

  6. #6
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Par défaut
    hmm

    Pour afficher sur un tableau de bord, ou autre ?

    Alors vous pourriez faire comme ceci, qui sera probablement moins lourd que des COUNT(*), mais dont les résultats peuvent être non consistant...
    A voir donc si cela est adapté à votre contexte précis.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    SELECT 
    	RECNAME ,
    	s.row_count AS NbLignes	
    FROM PSRECDEFN
    INNER JOIN	sys.tables t
    	ON t.name = RECNAME
    INNER JOIN 	sys.dm_db_partition_stats s
    	ON s.object_id = t.object_id
    WHERE s.index_id IN(0,1)
    Et à adapter pour prendre en compte le schéma, le cas échéant...

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

Discussions similaires

  1. TOTAL des enregistrements par table
    Par LDDL dans le forum Requêtes
    Réponses: 2
    Dernier message: 21/03/2007, 14h17
  2. Nombre total d'enregistrement dans un Form
    Par pleasewait dans le forum Access
    Réponses: 2
    Dernier message: 28/12/2006, 16h53
  3. [MySQL] afficher le nombre total d'enregistrements
    Par pod1978 dans le forum PHP & Base de données
    Réponses: 17
    Dernier message: 21/03/2006, 22h14
  4. [MySQL] LIMIT et nombre total d'enregistrements
    Par titoumimi dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 23/01/2006, 11h40
  5. Nombre Total d'Enregistrements d'une Requête d'Union
    Par sqlnet dans le forum Langage SQL
    Réponses: 5
    Dernier message: 30/12/2003, 17h12

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