{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
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
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
A voir également:
- Rechercher une valeur dans toutes les tables sql server
- Rechercher ou entrer l'adresse - Guide
- Sql lister les tables ✓ - Forum Programmation
- Rechercher ou entrer l'adresse 4 - recherche google ✓ - Forum Réseaux sociaux
- Cette valeur ne correspond pas aux restrictions de validation des données pour cette cellule ✓ - Forum Excel
- Ps3 media server - Télécharger - Divers Réseau & Wi-Fi
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 ...
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 ...