Created
February 7, 2013 16:58
-
-
Save justinlewis/4732385 to your computer and use it in GitHub Desktop.
Search an entire SQL Server database for a string. Assumes all tables are owned by dbo.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
DECLARE | |
@search_string VARCHAR(100), | |
@table_name SYSNAME, | |
@table_id INT, | |
@column_name SYSNAME, | |
@sql_string VARCHAR(2000) | |
SET @search_string = 'PUT THE TEXT HERE YOU WANT TO LOOK FOR' | |
DECLARE tables_cur CURSOR FOR SELECT name, object_id FROM sys.objects WHERE type = 'U' | |
OPEN tables_cur | |
FETCH NEXT FROM tables_cur INTO @table_name, @table_id | |
WHILE (@@FETCH_STATUS = 0) | |
BEGIN | |
DECLARE columns_cur CURSOR FOR SELECT name FROM sys.columns WHERE object_id = @table_id AND system_type_id IN (167, 175, 231, 239) | |
OPEN columns_cur | |
FETCH NEXT FROM columns_cur INTO @column_name | |
WHILE (@@FETCH_STATUS = 0) | |
BEGIN | |
SET @sql_string = 'IF EXISTS (SELECT * FROM ' + @table_name + ' WHERE ' + @column_name + ' LIKE ''%' + @search_string + '%'') PRINT ''' + @table_name + ', ' + @column_name + '''' | |
EXECUTE(@sql_string) | |
FETCH NEXT FROM columns_cur INTO @column_name | |
END | |
CLOSE columns_cur | |
DEALLOCATE columns_cur | |
FETCH NEXT FROM tables_cur INTO @table_name, @table_id | |
END | |
CLOSE tables_cur | |
DEALLOCATE tables_cur |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment