{SQL Server} Rechercher une valeur ds Table

Fermé
dutche Messages postés 73 Date d'inscription mardi 23 mars 2004 Statut Membre Dernière intervention 21 mai 2010 - 2 juil. 2009 à 20:43
 scaythe - 1 avril 2010 à 18:31
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

11 réponses

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