Search Text In Entire SQL Database

  1. DECLARE @Results Table (ColumnName nvarchar(370), ColumnValue nvarchar(3630))  
  2. DECLARE @TableName nvarchar(256), @ColumnName nvarchar(128), @SearchStr2 nvarchar(110)  
  3. SET @TableName = ''  
  4. SET @SearchStr2 = QUOTENAME('%Winterization%','''')  
  5. WHILE @TableName IS NOT NULL  
  6. BEGIN  
  7. SET @ColumnName = ''  
  8. SET @TableName =  
  9. (  
  10. SELECT MIN(QUOTENAME(TABLE_SCHEMA) + '.' + UOTENAME(TABLE_NAME))  
  11. FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE'  
  12. AND QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME) > @TableName AND OBJECTPROPERTY(OBJECT_ID(QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME)), 'IsMSShipped') = 0  
  13. )  
  14. WHILE (@TableName IS NOT NULLAND (@ColumnName IS NOT NULL)  
  15. BEGIN  
  16. SET @ColumnName =  
  17. (  
  18. SELECT MIN(QUOTENAME(COLUMN_NAME))  
  19. FROM INFORMATION_SCHEMA.COLUMNS  
  20. WHERE TABLE_SCHEMA = PARSENAME(@TableName, 2)  
  21. AND TABLE_NAME = PARSENAME(@TableName, 1)  
  22. AND DATA_TYPE IN ('char''varchar''nchar''nvarchar')  
  23. AND QUOTENAME(COLUMN_NAME) > @ColumnName  
  24. )  
  25. IF @ColumnName IS NOT NULL  
  26. BEGIN  
  27. INSERT INTO @Results EXEC  
  28. (  
  29. 'SELECT ''' + @TableName + '.' + @ColumnName + ''', LEFT(' + @ColumnName + ', 3630)  
  30. FROM ' + @TableName + ' (NOLOCK) ' +  
  31. ' WHERE ' + @ColumnName + ' LIKE ' + @SearchStr2  
  32. )  
  33. END  
  34. END  
  35. END  
  36. SELECT ColumnName, ColumnValue FROM @Results