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 :

SQL2k requete sur une liste de table


Sujet :

Développement SQL Server

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Japon

    Informations forums :
    Inscription : Novembre 2007
    Messages : 125
    Points : 92
    Points
    92
    Par défaut SQL2k requete sur une liste de table
    Bonjour,

    je voudrais savoir si c'est possible, et je pense que c'est le cas, de faire une requete sur une liste de table.

    j'obtiens ma liste de table de la maniere suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
      SELECT t.table_name
    FROM information_schema.tables t left join INFORMATION_SCHEMA.COLUMNS c 
    on object_id(t.table_name)= object_id(c.table_name)
    WHERE table_type='BASE TABLE'
    and left (t.table_name,5)='hist_'
    and datetime_precision >0
    and COLUMN_NAME='datehist'
    afin de faire une requete du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select 'HIST_CD_MARKIT' as name ,max(datehist) date_last_mod from HIST_CD_MARKIT
    je suis arrivé a généré les requettes avec un peu de code, mais l'ideal serait d'avoir un acces direct à l'information sans passé pas un system D (genre macgyver).

    Je vous remercie.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 056
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 056
    Points : 1 216
    Points
    1 216
    Par défaut
    Bonjour,

    le soucis concerne la colonne sur laquelle il faut faire le max(). Est-ce qu'elle s'appelle tout le temps datehist ?

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Japon

    Informations forums :
    Inscription : Novembre 2007
    Messages : 125
    Points : 92
    Points
    92
    Par défaut
    Bonjour, merci pour la réponse.
    en faite oui!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AND COLUMN_NAME='datehist'
    Bien à toi.

  4. #4
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 44
    Points : 55
    Points
    55
    Par défaut Essaye cela
    Bonsoir,

    Essaye ce 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
     
    create table MaTable ( NomTable sysname, Nombre int )
    go
     
    declare @_tbName sysname, @_mySql nvarchar(200)
    declare _crTrig cursor local fast_forward for
      select t.table_name
        FROM information_schema.TABLES t
            LEFT JOIN INFORMATION_SCHEMA.COLUMNS c 
               ON object_id(t.table_name)= object_id(c.table_name)
        WHERE table_type='BASE TABLE'
          AND LEFT (t.table_name,5)='hist_'
          AND datetime_precision >0
          AND COLUMN_NAME='datehist'
    open _crTrig
    fetch next from _crTrig into @_tbName
    while ( @@fetch_status = 0 ) begin
      set @_mySql = N'insert into MaTable( NomTable, Nombre ) ' + 
                     '  select ''' + @_tbName + ''', max(datehist) ' +
                     '    from ' + @_tbName
      exec sp_executesql @_mySql
      fetch next from _crTrig into @_tbName
    end
    close _crTrig
    deallocate _crTrig
     
    select * from MaTable

  5. #5
    Membre régulier
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Japon

    Informations forums :
    Inscription : Novembre 2007
    Messages : 125
    Points : 92
    Points
    92
    Par défaut
    Bonjour, merci
    j'aurai voulut eviter de créer une table temp, mais semblerai qu'il n'y aurait pas le choix.
    pas avant la version 2008.

Discussions similaires

  1. Requete sur une multitude de table
    Par fox89 dans le forum Requêtes et SQL.
    Réponses: 14
    Dernier message: 08/11/2010, 15h18
  2. [MySQL] requete sur une liste de date
    Par Revan dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 22/05/2008, 19h49
  3. SQL2k requete sur une liste de table
    Par mikaeru dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 19/11/2007, 09h36
  4. Réponses: 3
    Dernier message: 15/06/2007, 12h06
  5. [SQL2K]Requete sur une chaine avec une ou plusieurs quote
    Par tazamorte dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 17/04/2007, 08h22

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