Search
 
SCRIPT & CODE EXAMPLE
 

SQL

sql query to search for a string in all columns

SELECT * FROM `yourtable` WHERE `val` IN (`field1`, `field2`, `field3`, `field4`)
--Or
SELECT * FROM `yourtable` WHERE `field1` LIKE `%val%` or `field2` LIKE `%val%` etc....
Comment

How to search for a String in all Columns in all tables in SQL Server Database

USE YourDBName
GO

Declare @SearchString VARCHAR(100)
--Provide the String here. I am using Aamir for search
SET @SearchString='aamir'
DECLARE @DatabaseName VARCHAR(100)
DECLARE @SchemaName VARCHAR(100)
DECLARE @TableName VARCHAR(100)
DECLARE @ColumnName VARCHAR(100)
DECLARE @FullyQualifiedTableName VARCHAR(500)
Declare @DataType VARCHAR(50)

--Create Temp Table to Save Results
IF OBJECT_ID('tempdb..#Results') IS NOT NULL
    DROP TABLE #Results

CREATE TABLE #Results (
    DatabaseName VARCHAR(100)
    ,SchemaName VARCHAR(100)
    ,TableName VARCHAR(100)
    ,ColumnName VARCHAR(100)
    ,ColumnDataType VARCHAR(50)
    ,TotalTableRowCount INT
    ,StringOccuranceRecordCount INT
    )

DECLARE Cur CURSOR
FOR
SELECT C.Table_CataLog
    ,C.Table_Schema
    ,C.Table_Name
    ,C.Column_Name
    ,'[' + C.Table_CataLog + ']' + '.[' + C.Table_Schema + '].' 
    + '[' + C.Table_Name + ']' AS FullQualifiedTableName,
    C.Data_Type
FROM information_schema.Columns C
INNER JOIN information_Schema.Tables T ON C.Table_Name = T.Table_Name
    AND T.Table_Type = 'BASE TABLE'
    and (C.Data_Type like '%CHAR%'
    or C.Data_Type like '%Text%')


OPEN Cur
FETCH NEXT
FROM Cur
INTO @DatabaseName
    ,@SchemaName
    ,@TableName
    ,@ColumnName
    ,@FullyQualifiedTableName
    ,@DataType

WHILE @@FETCH_STATUS = 0
BEGIN
    DECLARE @SQL VARCHAR(MAX) = NULL
    SET @SQL = ' Select ''' + @DatabaseName + ''' AS DatabaseName, ''' 
    + @SchemaName + ''' AS TableName,
      ''' + @TableName + ''' AS SchemaName,
      ''' + @ColumnName + ''' AS ColumnName,
      ''' + @DataType + ''' AS ColumnName,
      (Select count(*) from ' + @FullyQualifiedTableName + ' With (Nolock)) 
      AS TotalTableRowCount,
      count(*) as StringOccuranceRecordCount from ' + @FullyQualifiedTableName 
      + 'With (Nolock) Where  '+@ColumnName+' like '''+'%'+ @SearchString+'%'''

   -- Print @SQL
    INSERT INTO #Results
    EXEC (@SQL)

    FETCH NEXT
    FROM Cur
    INTO @DatabaseName
        ,@SchemaName
        ,@TableName
        ,@ColumnName
        ,@FullyQualifiedTableName
        ,@DataType
END
CLOSE Cur
DEALLOCATE Cur

SELECT *,
Cast((StringOccuranceRecordCount/Cast(TotalTableRowCount as Numeric(13,1)))*100
Comment

PREVIOUS NEXT
Code Example
Sql :: oracle auto_increment 
Sql :: postgresql drop table 
Sql :: how to know the username of postgresql 
Sql :: vacuum table postgres 
Sql :: contains word in sql 
Sql :: create table sqlite 
Sql :: mysql start command 
Sql :: postgres set default schema 
Sql :: can you update NULL in sql 
Sql :: mysql backup query 
Sql :: psql while loop 
Sql :: delete top N rows in sql 
Sql :: db.Database.SqlQuery 
Sql :: python sqlalchemy connection show server 
Sql :: 2nd highest salary in mysql 
Sql :: mysql set value as null 
Sql :: how to get duplicate records with multiple field in sql 
Sql :: sql server select value large text 
Sql :: SHOW COLUMNS Statement 
Sql :: how to unlock table in sql server 
Sql :: snowflake datetrunc month 
Sql :: postgres list all triggers 
Sql :: postgres create extension if not exists 
Sql :: rename column sql 
Sql :: Check user permissions on postgres database 
Sql :: username sql 
Sql :: sql update where id 
Sql :: mysql to get column name in database 
Sql :: space not removing from column in sql 
Sql :: postgres list users and roles 
ADD CONTENT
Topic
Content
Source link
Name
7+9 =