Last active
August 29, 2015 14:13
-
-
Save meziantou/cfb9273d95828790e7d7 to your computer and use it in GitHub Desktop.
Search uniqueidentifier (guid) in SQL Server database
This file contains 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 @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