· 6 years ago · Jul 26, 2019, 08:30 PM
1USE [YourDBName]
2GO
3
4DECLARE @search nvarchar(100) = 'A37CC634-5289-413E-AD78-00191416284C'
5
6DECLARE @tablename NVARCHAR(100)
7DECLARE @columnname NVARCHAR(100)
8DECLARE @query NVARCHAR(MAX)
9DECLARE @rowcount INT
10DECLARE @i INT = 1
11DECLARE @count int
12
13CREATE TABLE #alltables
14(
15 N INT IDENTITY(1,1) NOT NULL,
16 columnname nvarchar(100) NOT NULL,
17 tablename nvarchar(100) NOT NULL
18)
19INSERT INTO #alltables
20(
21 columnname,
22 tablename
23)
24SELECT c.name AS ColumnName,
25 '['+ s.name + '].[' + o.name + ']' AS TableName
26FROM sys.columns c
27 JOIN sys.objects o ON c.object_id = o.object_id
28 JOIN sys.schemas s ON s.schema_id = o.schema_id
29WHERE system_type_id = (SELECT system_type_id
30 FROM sys.types
31 WHERE name = 'uniqueidentifier')
32AND (s.name NOT LIKE 'sys%' AND o.name NOT LIKE 'sys%')
33AND o.type = 'U'
34
35SELECT @count = MAX(N)
36FROM #alltables
37
38WHILE (@i<=@count)
39BEGIN
40
41 SELECT @tablename = tablename, @columnname = columnname
42 FROM #alltables
43 WHERE N = @i
44
45 SET @query = 'SELECT @result = COUNT(*) FROM ' + @tablename + ' WHERE ' + @columnname + ' = ' + ''''+ @search +''''
46 execute sp_executesql @query, N'@result int output', @result = @rowcount output
47
48 IF (@rowcount=1)
49 BEGIN
50 PRINT 'Exists in: '+ @tablename + ', ' + @columnname
51 END
52
53 SET @i = @i + 1
54
55END
56
57DROP TABLE #alltables