здесь в качестве примера я создал с двумя таблицами (partoftableY1 & partoftableY2) с различными данными в каждом
/*
create table tableX (column1 int);
insert into tablex
select 1
union all select 2;
create table partoftableY1 (data nvarchar(50));
create table partoftableY2 (data nvarchar(50));
insert into partoftableY1 select 'hey 1 here';
insert into partoftableY2 select 'hey 2 here';
*/
declare @sql nvarchar(max)
-- use the ability of SQL to build up string of all the sql you need to run
set @sql = 'select data from (select '''' as data'
select @sql = COALESCE(@sql + ' union all ', '')
+ 'select data from partoftableY'
+ cast(column1 as nvarchar(4)) from tableX
select @sql = @sql + ') X where data <>'''''
-- DEBUG for seeing what SQL you created
print @sql
-- Now execute the SQL
exec sp_executesql @sql= @sql
, который дает мне результаты
hey 1 here
hey 2 here
Вам нужно будет настроить его для типов ваших данных, но это должно дать вам основную идею.
Для повторной Ференц вот SQL, который был создан и выполнен:
select data
from (
select '' as data
union all select data from partoftableY1
union all select data from partoftableY2
) X
where data <>''
нотабене
- я положить отформатирован его для более легкого чтения, как это на самом деле создается как одна длинная линия
- я использовал selet данные, а не выбрать * как число столбцов должно быть одинаковым для каждого выбора в союзе , Вам нужно будет выбрать нужные столбцы, а затем внести изменения, чтобы все столбцы в выборе в объединении были одинаковыми.
- В верхней части союза есть фиктивный флажок, чтобы сделать код объединения легким - никаких условностей не требуется, так как необходимо, чтобы все объединение представляло
- Я использовал выбор out по всему соединению, чтобы вы могли получить sid манекена выбрать
есть два способа сделать это - и вы не можете сделать для-каждого (так называемого курсора) - это может быть возможно в заданная операция. Расскажите, пожалуйста, что вы делаете с результатами, и мы посмотрим, какое лучшее решение. –
Привет, ну в конце мне нужно собрать все таблицы в один. Например: результат будет десятью таблицами – user1434979