Jesus,
I am sorry, but I may not understand what you are asking. If you are
looking for which tables have a column of DECIMAL(5,2) you could write the
following:
SELECT TABLE_NAME, COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE NUMERIC_PRECISION = 5
AND NUMERIC_SCALE = 2
ORDER BY TABLE_NAME, COLUMN_NAME
RLF
> hello
> i need search in BBDD with 10000 tables a filed with type is decimal(5,2)
Woops. Slightly corrected code:
SELECT TABLE_NAME, COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE DATA_TYPE = 'DECIMAL'
AND NUMERIC_PRECISION = 5
AND NUMERIC_SCALE = 2
The other query would also return NUMERIC(5,2).
RLF
> hello
> i need search in BBDD with 10000 tables a filed with type is decimal(5,2)
> i need search in BBDD with 10000 tables a filed with type is decimal(5,2)
You requirements are not clear. To expand on Russell's response, the script
below search all decimal/numeric(5,2) columns in the database for a
specified value and list the tables/columns in which the value was found:
IF OBJECT_ID(N'tempdb..#ColumnList') IS NOT NULL
DROP TABLE #ColumnList
DECLARE
@ValueToFind decimal(5,2),
@TABLE_SCHEMA sysname,
@TABLE_NAME sysname,
@COLUMN_NAME sysname,
@UpdateStatement nvarchar(4000)
--specify decimal value to find
SET @ValueToFind = 0.00
SELECT
TABLE_SCHEMA,
TABLE_NAME,
COLUMN_NAME,
CAST(0 AS bit) AS Found
INTO #ColumnList
FROM INFORMATION_SCHEMA.COLUMNS
WHERE
DATA_TYPE IN('decimal', 'numeric')
AND NUMERIC_PRECISION = 5
AND NUMERIC_SCALE = 2
DECLARE Columns CURSOR
LOCAL FAST_FORWARD FOR
SELECT
TABLE_SCHEMA,
TABLE_NAME,
COLUMN_NAME
FROM #ColumnList
OPEN Columns
WHILE 1 = 1
BEGIN
FETCH NEXT FROM Columns INTO
@TABLE_SCHEMA,
@TABLE_NAME,
@COLUMN_NAME
IF @@FETCH_STATUS = -1 BREAK
SET @UpdateStatement =
N'UPDATE #ColumnList SET Found = 1
WHERE
TABLE_SCHEMA = @TABLE_SCHEMA
AND TABLE_NAME = @TABLE_NAME
AND COLUMN_NAME = @COLUMN_NAME
AND EXISTS(
SELECT *
FROM ' + QUOTENAME(@TABLE_SCHEMA) + '.' +
QUOTENAME(@TABLE_NAME) +
N' WHERE ' + QUOTENAME(@COLUMN_NAME) + N' = @ValueToFind)'
EXEC sp_executesql
@UpdateStatement,
N'@TABLE_SCHEMA sysname,
@TABLE_NAME sysname,
@COLUMN_NAME sysname,
@ValueToFind decimal(5, 2)',
@TABLE_SCHEMA = @TABLE_SCHEMA,
@TABLE_NAME = @TABLE_NAME,
@COLUMN_NAME = @COLUMN_NAME,
@ValueToFind = @ValueToFind
END
CLOSE Columns
DEALLOCATE Columns
SELECT
TABLE_SCHEMA,
TABLE_NAME,
COLUMN_NAME,
Found
FROM #ColumnList
WHERE
Found = 1
GO
IF OBJECT_ID(N'tempdb..#ColumnList') IS NOT NULL
DROP TABLE #ColumnList
GO

Signature
Hope this helps.
Dan Guzman
SQL Server MVP
> hello
> i need search in BBDD with 10000 tables a filed with type is decimal(5,2)