вот пример того, как сделать это.
Поскольку вы не публикуете много информации, я просто предполагаю, что таблица, содержащая все имена таблиц, называется «таблицами»
Также это будет работать, только если все таблицы имеют одинаковые типы столбцов.
-- create a test table you dont need this
create table tables (tb_name varchar(100) primary key, field1 varchar(100), field2 varchar(100))
-- fill my test table you dont need this
insert into tables values ('table1', 'field1', 'field2')
insert into tables values ('table2', 'foo1', 'foo2')
insert into tables values ('table3', 'test1', 'test2')
-- this is the actual code you need, replace the names with your real names
declare @sql varchar(max) = ''
declare @tb_name varchar(100) = ''
declare @field1 varchar(100) = ''
declare @field2 varchar(100) = ''
declare myCursor cursor for
select tb_name, field1, field2 from tables -- dont know how your table is called
open myCursor
fetch next from myCursor into @tb_name, @field1, @field2
while @@FETCH_STATUS = 0
begin
set @sql = @sql + ' select ' + @field1 + ', ' + @field2 + ' from ' + @tb_name + ' union all '
fetch next from myCursor into @tb_name, @field1, @field2
end
close myCursor
deallocate myCursor
select @sql = left(@sql, len(@sql) - 10)
exec (@sql)
EDIT: используя где положение возможно, но все будет получить сложнее
declare @something date = getdate()
set @sql = @sql + ' select ' + @field1 + ', ' + @field2 + ' from ' + @tb_name + ' where ' + @field1 + ' = ' + @something + ' union all '
Вы можете использовать приведенный выше пример, чтобы построить то, что вам нужно просто играть с ней.
EDIT: используя ИНЕКЕ с формат даты
declare @something date = getdate()
set @sql = @sql + ' select ' + @field1 + ', ' + @field2 + ' from ' + @tb_name + ' where ' + @field1 + ' = ''' + CONVERT(varchar(8), @something, 112) + ''' union all '
Вы можете разместить данные примера для таблиц и пример того, что ваш результирующий набор должен выглядеть? – GuidoG
, если вы хотите, чтобы кто-то помог вам, вам нужно четко указать, что вам нужно. Как еще мы можем вам помочь? – GuidoG