{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
A voir également:
- Rechercher une valeur dans une base de données sql server
- Rechercher ou entrer l'adresse - Guide
- Exemple base de données access à télécharger gratuit - Forum Access
- Tnt base de données vide ✓ - Forum TNT / Satellite / Réception
- Afficher les tables d'une base de données sql ✓ - Forum Programmation
- Rechercher ou entrer l'adresse 4 - recherche google ✓ - Forum Réseaux sociaux
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 ...