· 8 years ago · Jul 09, 2018, 04:00 PM
1foreach(table in tableList) {
2 if (table.hasColumnName(SOME_COLUMN) {
3 EXEC ('SELECT * FROM table WHERE (SOME_COLUMN = SOME_VALUE)')
4 }
5}
6
7DECLARE @COLUMN_VALUE nvarchar(512), @VALUE nvarchar(10);
8
9SET @COLUMN_VALUE = 'id'
10SET @VALUE = '0';
11
12DECLARE @TABLE_NAME nvarchar(512), @COLUMN_NAME nvarchar(512), @QUERY nvarchar(512);
13
14SET @TABLE_NAME = '';
15
16WHILE @TABLE_NAME IS NOT NULL
17BEGIN
18 SET @TABLE_NAME =
19 (
20 SELECT MIN(QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME))
21 FROM INFORMATION_SCHEMA.TABLES
22 WHERE QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME) > @TABLE_NAME
23 );
24 PRINT 'Table name : ' + @TABLE_NAME;
25 SET @COLUMN_NAME =
26 (
27 SELECT MIN(QUOTENAME(COLUMN_NAME))
28 FROM INFORMATION_SCHEMA.COLUMNS
29 WHERE (TABLE_NAME = PARSENAME(@TABLE_NAME, 1))
30 AND (COLUMN_NAME = @COLUMN_VALUE)
31
32 );
33 PRINT 'Column name : ' + @COLUMN_NAME;
34 IF @COLUMN_NAME IS NOT NULL
35 BEGIN
36 SET @QUERY =
37 'SELECT ''' + @TABLE_NAME + ''' AS Source, * ' +
38 'FROM ' + @TABLE_NAME + ' ' +
39 'WHERE (' + @COLUMN_NAME + ' = ' + @VALUE + ')'
40 EXEC
41 (
42 'IF EXISTS(' + @QUERY + ') ' + @QUERY
43 )
44 END
45END
46
47CREATE TABLE foo
48(
49SOME_COLUMN VARCHAR(10)
50)
51
52CREATE TABLE bar
53(
54SOME_COLUMN VARCHAR(10)
55)
56
57INSERT INTO bar VALUES ('SOME_VALUE')
58
59
60DECLARE @Query nvarchar(max)
61
62SELECT
63 @Query = isnull(@Query + ';','') +
64 'IF EXISTS(SELECT * FROM ' + QUOTENAME(SCHEMA_NAME(schema_id)) + '.' +
65 QUOTENAME(o.name) + ' WHERE SOME_COLUMN=''SOME_VALUE'')
66 SELECT ''' + o.name +''' AS Source, * FROM ' + QUOTENAME(SCHEMA_NAME(schema_id)) + '.' +
67 QUOTENAME(o.name) + ' WHERE SOME_COLUMN=''SOME_VALUE'''
68FROM sys.columns c
69JOIN sys.objects o
70ON o.object_id = c.object_id
71WHERE o.type IN ('U','V') AND c.name = 'SOME_COLUMN'
72
73EXEC sp_executesql @Query