{SQL Server} Rechercher une valeur ds Table
dutche
Messages postés
83
Statut
Membre
-
scaythe -
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
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 une base de données sql server
- Fuite données maif - Guide
- Rechercher ou saisir une url - Guide
- Base de registre - Guide
- Tnt base de données vide ✓ - Forum TNT / Satellite / Réception
- Cette valeur ne correspond pas aux restrictions de validation des données pour cette cellule ✓ - Forum MacOS
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 ...