Regex in Stored Procedure Problem

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • pankajit09
    Contributor
    • Dec 2006
    • 296

    Regex in Stored Procedure Problem

    Whe I execute the below procedure by EXEC SearchAllTables '[0-9]{3}' no results are coming -->


    [CODE=sql]drop proc SearchAllTables
    GO


    CREATE PROC SearchAllTables
    (
    @SearchStr nvarchar(100)
    )
    AS
    BEGIN

    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(T ABLE_SCHEMA) + '.' + QUOTENAME(TABLE _NAME))
    FROM INFORMATION_SCH EMA.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(C OLUMN_NAME))
    FROM INFORMATION_SCH EMA.COLUMNS
    WHERE TABLE_SCHEMA = PARSENAME(@Tabl eName, 2)
    AND TABLE_NAME = PARSENAME(@Tabl eName, 1)
    AND DATA_TYPE IN ('char', 'varchar', 'nchar', 'nvarchar')
    AND QUOTENAME(COLUM N_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
    END[/CODE]
    Last edited by debasisdas; May 5 '08, 07:25 AM. Reason: added code=sql tags
  • debasisdas
    Recognized Expert Expert
    • Dec 2006
    • 8119

    #2
    do you have matching data in the table for the query to filter ?

    Comment

    Working...