title: How do I eliminate some records from my sql resultset if they contain some specific numeric characters?
body: <p>First of all, my apologies if this question has been asked before but I've done my best to search but was unsuccessful.
  Now, I have a stored procedure (can be seen below) which searches all columns of all tables in a database for a keyword. </p>
  
  <pre><code>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(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME))
          FROM    INFORMATION_SCHEMA.TABLES
          WHERE       TABLE_TYPE = 'BASE TABLE'
              AND QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME) &gt; @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) &gt; @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></pre>
  
  <p>And we I use this sp to search all colums of all tables that if they contains the string '134'. Then I got a result in return such:</p>
  
  <p><strong>ColumnValue</strong></p>
  
  <p>1) 313472</p>
  
  <p>2) C0134G332</p>
  
  <p>3) CAB134BNH</p>
  
  <p>4) 134AAABBBCCC</p>
  
  <p>5) 134AAAABBB134</p>
  
  <p>Finally, I want the 3rd and the 4th one, I just want my record to contain only 134 as numerical characters and each of them can appear in the string only <strong>once</strong> (so the 5th not acceptable). I just want to eliminate the records that contain any other numerical characters than '134'. 
  Any help would be appreciated. Thanx !</p>