Search tables for value

Search for any column in any table that has a specific value where the column is a specific data type

1
2
3
4
5
6
7
8
9
10
11
12
13
DECLARE @SearchGUID UNIQUEIDENTIFIER = 'BF3CBDB9-39A9-487D-8754-FC4120E4D993';
DECLARE @SQL NVARCHAR(MAX) = '';

-- Generate search queries for each table/column
SELECT @SQL = @SQL +
    'SELECT ''' + TABLE_SCHEMA + '.' + TABLE_NAME + ''' AS TableName, ' + QUOTENAME(COLUMN_NAME) + ' ' +
    'FROM ' + QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME) + ' WHERE ' + QUOTENAME(COLUMN_NAME) + ' = ''' + CAST(@SearchGUID AS NVARCHAR(36)) + '''; '
FROM INFORMATION_SCHEMA.COLUMNS
WHERE DATA_TYPE = 'uniqueidentifier';

-- Execute the dynamic SQL
PRINT @SQL; -- Uncomment this line if you want to debug and see the generated SQL
EXEC sp_executesql @SQL;

Leave a Reply