begin process at 2012 05 27 05:26:06
  Trouver un code source :
 
dans
 
Accueil > Forum > 

SQL

 > 

SQL Server, MSDE, SQL Express

 > 

Requêtes

 > 

Select * from *


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Select * from *

mardi 24 août 2010 à 11:18:34 | Select * from *

ziffox

Bonjour à tous,

Je cherche a faire une requête qui parcourt toute la base, et qui m'affiche le nom de la table et du champ qui contient une valeur.

j'ai déjà isolé la liste des champs dans une table temporaire avec cette requete :

Code sql :
select o.name as [nom_table], c.name as [nom_champ]
from sysobjects o, syscolumns c 
where o.type='U'


et j'aimerais me servir du contenu de cette table pour construire une requete du genre :

Code sql :
select nom_table, nom_champ
from table_temp
where nom_champ[n] = 'valeur'


Peut être en parcourant cette table avec un curseur, un fonction, je ne sais pas trop...

merci pour votre aide
mardi 24 août 2010 à 11:35:37 | Re : Select * from *

DARKSIDIOUS

Membre Club Administrateur CodeS-SourceS
Salut,

Je vois pas trop l'intérêt de faire cà. A quoi ca peut bien te servir de connaître la liste de toutes les valeurs entrées dans ta base ?

Je ne pense pas que ce soit possible, mais il reste la solution de faire x requêtes, une par table.
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
mardi 24 août 2010 à 16:01:31 | Re : Select * from *

ziffox

l'intérêt pour moi c'est de retrouver dans quelle table se trouve un id, une valeur, un libellé ou autre..

je bosse sur un support applicatif et on analyse souvent des bases de données avec de nombreuses tables et des valeurs à retrouver dans l'une ou dans l'autre, trouver les correspondances, etc...

mais j'ai peut être trouvé une autre solution, mais je sais pas si c'est possible :

stocker une liste de requêtes SQL dans une table, puis les lancer une par une, en stockant leur résultat dans une table

Pouvez-vous me dire comment vous vous y prendriez ?

merci !!
mardi 24 août 2010 à 16:07:07 | Re : Select * from *

DARKSIDIOUS

Membre Club Administrateur CodeS-SourceS
Salut,

Normalement, lorsque tu recherche un id par exemple, tu sais dans quelle table le trouver. Je vois pas l'intérêt de parcourir TOUTES les données de TOUTES les tables uniquement pour trouver un id. A moins de faire un projet générique qui doit chercher une valeur dans une base de données totalement inconnue, je n'en vois pas vraiment l'intérêt.

Prenant le cas d'une base qui représente un garage par exemple, si tu cherche la facture de la réparation d'une citroën C4 de couleur rouge d'un client, je vous pas pourquoi tu devrais regarder dans la table des pneus en stock, tu sais déjà qu'il faut regarder dans la table des voitures.

Regrouper toutes les données de toutes les tables dans une seule table, qui ne sera donc pas indexée, tout cà pour faire une recherche, tu vas flinguer ton serveur de base de données si tu as beaucoup de données !
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
mardi 24 août 2010 à 17:41:43 | [cloturé] Re : Select * from *

ziffox

Réponse acceptée !
ok laissez tomber je vais me débrouiller autrement

vous pouvez fermer le cas.
mercredi 25 août 2010 à 00:41:15 | Re : Select * from *

Tolliap

Bonjour,
J'arrive un peut tard, mais voici ce que je ferai.
C'est une petite procédure stocké qui attend une variable que l'on veux rechercher dans toutes la base de données.

Si ça peut t'aider :

Code sql :
create procedure RechercheChamp
@recherche varchar(255)
as

    DECLARE tnames_cursor CURSOR
    FOR
    select name from sysobjects o where o.type='U'
    OPEN tnames_cursor
    DECLARE @name sysname
    FETCH NEXT FROM tnames_cursor INTO @name
    WHILE (@@FETCH_STATUS <> -1)
    BEGIN
    -------------------+
        declare @requete varchar (8000)
        set @requete='SELECT * FROM '+@name+' where '

        declare @requeteFiltre varchar (8000)
        set @requeteFiltre=''
       
        DECLARE tnames_cursorFiltre CURSOR
        FOR
        SELECT   COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME=@name
        OPEN tnames_cursorFiltre
        DECLARE @COLUMN_NAME sysname
        FETCH NEXT FROM tnames_cursorFiltre INTO @COLUMN_NAME
        WHILE (@@FETCH_STATUS <> -1)
        BEGIN
        -------------------
            if @requeteFiltre<>''
                set @requeteFiltre= @requeteFiltre+ ' OR '

            set @requeteFiltre  = @requeteFiltre + 'convert(varchar(255),'+@COLUMN_NAME+') like ''%'+@recherche+'%''';


        -------------------
        FETCH NEXT FROM tnames_cursorFiltre INTO @COLUMN_NAME
        END
        CLOSE tnames_cursorFiltre
        DEALLOCATE tnames_cursorFiltre

        exec (@requete + @requeteFiltre)

    -------------------
    FETCH NEXT FROM tnames_cursor INTO @name
    END
    CLOSE tnames_cursor
    DEALLOCATE tnames_cursor 



Qui ne tente rien, n'a rien


Cette discussion est classée dans : table, code, champ, select, from


Répondre à ce message

Sujets en rapport avec ce message

Trigger UPDATED sur plusieurs champs [ par Maroxye ] Bonjour! Je débute en SQL et je fois faire un TRIGGER sur l'ajout, la suppression et la modification de certains champs dans une table. Lorsque ces Génération de graphiques [ par pillsmen ] Bonjour à tous,Mon problème concerne la génération d'un graphique dans un état sous ACCESS.On va commencer par le commencement ^^, je pense qu'un exem SubQuery et ou condition de jointure [ par Nicolas___ ] Bonjour, je suis étudiant en info et je dois repasser mon cours de SQL , j'ai donc une petite question à vous demandez (J'y ai déjà répondu, j'aimer Utilisation de clause where stockée en DB [ par Badside ] Bonjour, J'aimerais récupérer la somme de plusieurs montants stockés dans une table et sélectionnés sur des critères repris dans une clause where sto Requête utilisant un CONCAT dans le from [ par infkb ] Bonjour, je veux faire une requête sur la table test_21 tel que 21 et un id qu'on récupère d'une autre requête SQL puis je le concatène avec la chaîn Copie automatique des données d'un champ d'une table vers un autre champ d'une autre table sans changer le libelle [ par endlessy ] Bonjour à tous. Comment allez vous bien? [^^happy13] Alors excusez de ma non compétence en SQL (je débute) [^^sad2] et je me renseigne partout sur i REQUETE SQL [ par Eros2007 ] Bonjour tout le monde. voila ma question: j'utilise une requette sql pour pouvoir faire un preview et imprimer par la suite les enregistrements des cl Mettre à jour un champ avec un champ d'une autre table [ par fauve ] Bonjour, Je rencontre un soucis, je souhaite mettre à jour un champ avec celui d'une autre table. En temps normal, je n'ai aucun problème tant que l Récupereration par code de l'index et de la clé d'une table SQL / Access [ par FNIAMKE ] Bonsoir Mme/Mr. Comment récuperer l'index et la clé d'une table (SQL ou access) dans une réquête ou par code. Merci de m'apporter assistance. NIAM code pour selectionner une table [ par SteeveMc ] Bonjour, Je souhaite faire une requête ajout pour ajouter tous les champs de tables que je recevrai quotidiennement à une table globale. J'aimerai,


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,296 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales