1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
| SELECT sys.objects.name+'.'+sys.all_columns.name tablecolumname,
sys.objects.name tablename,
sys.all_columns.name columname,
0 AS OK,
0 AS EXIST
INTO #IN_SCHEMA
FROM sys.objects INNER JOIN
sys.all_columns ON sys.objects.object_id = sys.all_columns.object_id INNER JOIN
INFORMATION_SCHEMA.TABLES ON INFORMATION_SCHEMA.TABLES.TABLE_NAME = sys.objects.name INNER JOIN
sys.types ON sys.all_columns.user_type_id = sys.types.user_type_id
WHERE (INFORMATION_SCHEMA.TABLES.TABLE_TYPE = 'BASE TABLE') AND
(INFORMATION_SCHEMA.TABLES.TABLE_NAME IS NOT NULL) AND
(sys.types.name NOT IN ('int', 'datetime', 'bit', 'smallint', 'decimal', 'bigint', 'smalldatetime', 'numeric', 'tinyint', 'float','varbinary','binary', 'sysname', 'image'))
ORDER BY tablecolumname
DECLARE @TABLE nvarchar(400),
@COLUM nvarchar(400),
@TABLECOLUM nvarchar(400),
@SQL nvarchar(4000),
/********************************************************************************
REQUETE
********************************************************************************/
-- Début de la boucle de traitement des données
WHILE EXISTS(SELECT *
from #IN_SCHEMA
WHERE OK = 0)
BEGIN
SET @TABLE = (SELECT TOP 1 tablename
FROM #IN_SCHEMA WHERE OK = 0
ORDER BY tablecolumname);
SET @COLUM = (SELECT TOP 1 Columname
FROM #IN_SCHEMA WHERE OK = 0
ORDER BY tablecolumname);
SET @TABLECOLUM = (SELECT TOP 1 TableColumname
FROM #IN_SCHEMA WHERE OK = 0
ORDER BY tablecolumname);
------------------------------------------------------------------------------------
SET @SQL=N'
UPDATE #IN_SCHEMA
SET EXIST = 1
WHERE tablecolumname = '''+@TABLECOLUM+''' and (SELECT count (*)
from '+@TABLE+'
where '+@COLUM+' like '+'''%texte recherché%'')> 0'
---------------------------------------------------------------------------------
EXEC (@SQL)
UPDATE #IN_SCHEMA
SET OK = 1
WHERE tablecolumname = @TABLECOLUM
end
Select* from #IN_SCHEMA where EXIST = 1 order by tablecolumname |
Partager