Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
Home
Discussion Groups
DB Engine
SQL ServerMSDESQL Server CE
Services
Analysis (Data Mining)Analysis (OLAP)DTSIntegration ServicesNotification ServicesReporting Services
Programming
CLRConnectivitySQLXML
Other Technologies
ClusteringEnglish QueryFull-Text SearchReplicationService Broker
General
Data WarehousingPerformanceSecuritySetupSQL Server ToolsOther SQL Server Topics
DirectoryUser Groups
Related Topics
MS AccessOther DB ProductsMS Server Products.NET DevelopmentVB DevelopmentJava DevelopmentMore Topics ...

SQL Server Forum / DB Engine / SQL Server / November 2007

Tip: Looking for answers? Try searching our database.

IMPORTANT: Search tables with data field is decimal(5,2)

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
Jesus Suarez - 30 Nov 2007 12:14 GMT
hello
i need search in BBDD with 10000 tables a filed with type is decimal(5,2)
Russell Fields - 30 Nov 2007 13:36 GMT
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)
Russell Fields - 30 Nov 2007 13:41 GMT
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)
Dan Guzman - 30 Nov 2007 14:06 GMT
> 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)
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2009 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.