{SQL Server} Rechercher une valeur ds Table

dutche Messages postés 83 Statut Membre -  
 scaythe -
Bonjour,

SVP j'ai besoin d'aide, Voici mon problème:

En fait j'aimerais renvoyer toutes les lignes contenant la valeur "X" dans le Champ "Chp1" pour toutes les tables de ma Base de données contenant ce champ.

Est ce possible, Si Oui Comment
Configuration: Windows XP
Firefox 3.0.11

11 réponses

  1. scaythe
     
    a tout hasard : un début de réponse

    SET NOCOUNT ON

    DECLARE
    @TABLE VARCHAR(128),
    @COL nvarchar(128),
    @Chaine_rechercher VARCHAR(500),
    @sqlcmd VARCHAR(250)

    -- Chaine recherchée
    set @Chaine_rechercher='TOTO'
    DECLARE TABLE_CUR CURSOR FOR
    SELECT c.name,o.name FROM syscolumns c, sysobjects o
    -- on ne prend que les tables utilisateurs
    WHERE o.type='U'
    -- lien table colonne
    AND c.id=o.id
    -- la colonne que l'on cherche
    AND c.name LIKE '%domai%'
    -- on ne prend que les colonnes qui peuvent contenir des caractères
    AND c.xtype IN (167,239,231,35,13,241)

    OPEN TABLE_CUR
    FETCH NEXT FROM TABLE_CUR
    INTO @COL,@TABLE

    WHILE @@FETCH_STATUS = 0
    BEGIN
    SET @sqlcmd='select * from '+ @TABLE +' where '+@COL+' = '+''''+@Chaine_rechercher+''''
    EXEC (@sqlcmd)
    END
    CLOSE TABLE_CUR
    DEALLOCATE TABLE_CUR

    C'est un début de réponse car
    1- pour chaque table tu vas avoir un résultat même si 0 ligne de renvoier
    2- je pense qu'il 'y a une solution plus belle qui serait de passer par un sp_msforeachtable ...
    1