Skip to content

Instantly share code, notes, and snippets.

@meziantou
Last active August 29, 2015 14:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save meziantou/cfb9273d95828790e7d7 to your computer and use it in GitHub Desktop.
Save meziantou/cfb9273d95828790e7d7 to your computer and use it in GitHub Desktop.
Search uniqueidentifier (guid) in SQL Server database
DECLARE @searchValue uniqueidentifier = 'a2843a1e-6ed4-4045-a179-51f0743943b8'
DECLARE @sql NVARCHAR(MAX);
WITH cte_sql_queries(sql_query) AS (
-- SELECT '[dbo].[Customer]' FROM [dbo].[Customer] WHERE [Customer_Id]=@searchValue
SELECT 'SELECT ''' + QUOTENAME(t.TABLE_SCHEMA) + ''' schema_name '
+ ' , ''' + QUOTENAME(t.TABLE_NAME) + ''' table_name '
+ ' , ''' + QUOTENAME(c.COLUMN_NAME) + ''' column_name '
+ ' , ''SELECT ' + QUOTENAME(c.COLUMN_NAME) + ', * FROM ' + QUOTENAME(t.TABLE_SCHEMA) + '.' + QUOTENAME(t.TABLE_NAME) + ' WHERE ' + QUOTENAME(c.COLUMN_NAME) + '='''''+ CAST(@searchValue AS NVARCHAR(36)) +''''''' query '
+ ' FROM ' + QUOTENAME(t.TABLE_SCHEMA) + '.' + QUOTENAME(t.TABLE_NAME)
+ ' WHERE ' + QUOTENAME(c.COLUMN_NAME) + '=@searchValue'
FROM INFORMATION_SCHEMA.Columns c
INNER JOIN INFORMATION_SCHEMA.Tables t
ON t.TABLE_NAME = c.TABLE_NAME
AND t.TABLE_SCHEMA = c.TABLE_SCHEMA
AND t.TABLE_TYPE = 'BASE TABLE'
AND c.DATA_TYPE = 'uniqueidentifier'
)
SELECT @sql = (SELECT sql_query + N' UNION ALL ' FROM cte_sql_queries
FOR XML PATH('')) + N' SELECT NULL, NULL, NULL, NULL WHERE 0=1'; -- WHERE 0=1 avoid selecting the row
--PRINT @SQL;
exec sp_executesql @sql, N'@searchValue uniqueidentifier', @searchValue;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment