Tuesday, June 24, 2014

T-SQL: Search text inside tables

Script to search inside tables
 
DECLARE @SearchStr nvarchar(100)
 
SET @SearchStr = 'STRING TO SEARCH'
 
CREATE TABLE #Results (ColumnName nvarchar(370), ColumnValue nvarchar(3630))
 
SET NOCOUNT ON
 
DECLARE @TableName nvarchar(256), @ColumnName nvarchar(128), @SearchStr2 nvarchar(110)
SET  @TableName = ''
SET @SearchStr2 = QUOTENAME('%' + @SearchStr + '%','''')
 
WHILE @TableName IS NOT NULL
BEGIN
    SET @ColumnName = ''
    SET @TableName = 
    (
        SELECT MIN(QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME))
        FROM     INFORMATION_SCHEMA.TABLES
        WHERE         TABLE_TYPE = 'BASE TABLE'
            AND    QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME) > @TableName
            AND    OBJECTPROPERTY(
                    OBJECT_ID(
                        QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME)
                         ), 'IsMSShipped'
                           ) = 0
    )
 
    WHILE (@TableName IS NOT NULL) AND (@ColumnName IS NOT NULL)
    BEGIN
        SET @ColumnName =
        (
            SELECT MIN(QUOTENAME(COLUMN_NAME))
            FROM     INFORMATION_SCHEMA.COLUMNS
            WHERE         TABLE_SCHEMA    = PARSENAME(@TableName, 2)
                AND    TABLE_NAME    = PARSENAME(@TableName, 1)
                AND    DATA_TYPE IN ('char', 'varchar', 'nchar', 'nvarchar')
                AND    QUOTENAME(COLUMN_NAME) > @ColumnName
        )
 
        IF @ColumnName IS NOT NULL
        BEGIN
            INSERT INTO #Results
            EXEC
            (
                'SELECT ''' + @TableName + '.' + @ColumnName + ''', LEFT(' + @ColumnName + ', 3630) 
                FROM ' + @TableName + ' (NOLOCK) ' +
                ' WHERE ' + @ColumnName + ' LIKE ' + @SearchStr2
            )
        END
    END    
END
 
SELECT ColumnName, ColumnValue FROM #Results

Link to source

1 comment:


  1. اننا في شركة الرائد للخدمات المنزلية نقدم خدمات ممتازة في الدمام بافضل الاسعار بجودة عالية لمزيد من الخدمات تفضل بزيارة
    شركة مكافحة حشرات بالدمام شركة مكافحة حشرات بالدمام
    شركة تنظيف سجاد بالدمام شركة تنظيف سجاد بالدمام
    شركة تسليك مجاري بالدمام شركة تسليك مجارى بالدمام
    افضل شركة تنظيف بالدمام افضل شركة تنظيف بالدمام
    شركة مكافحة الفئران بالدمام شركة مكافحة الفئران بالدمام
    ارخص شركة نقل عفش بالدمام ارخص شركة نقل عفش بالدمام

    ReplyDelete