Create Procedure p(@tables varchar(500))
as
begin
declare @s varchar(8000)
set @s='select * from '
while charindex(',',@tables)>0
begin
set @s=@s+left(@tables,charindex(',',@tables)-1)+' union select * from '
set @tables=stuff(@tables,1,charindex(',',@tables),'')
end
set @s=@s+@tables
exec(@s)
end
go
as
begin
declare @s varchar(8000)
set @s='select * from '
while charindex(',',@tables)>0
begin
set @s=@s+left(@tables,charindex(',',@tables)-1)+' union select * from '
set @tables=stuff(@tables,1,charindex(',',@tables),'')
end
set @s=@s+@tables
exec(@s)
end
go
(
@tables varchar(500)
)
as
begin
declare @result varchar(8000)
select @result= 'select * from '+replace(@tables,',',' union all select * from ')+''
exec(@result)
end
(
@tables varchar(500)
)
as
declare @s varchar(8000)
set @s='select * from '+replace(@tables,',',' union select * from ')
exec(@s)
go
(
@tables varchar(500) --a1,a2,a3
)
as
declare @sql varchar(1000),@name varchar(10)
set @tables=@tables+','
set @sql=''
set @name=''
while charindex(',',@tables)<>0
begin
set @name=substring(@tables,1,charindex(',',@tables)-1)
set @sql=@sql+'select * from '+@name +' unoin'
set @tables=stuff(@tables,1,charindex(',',@Tables),'')
endset @sql=left(@sql,len(@sql)-5)exec(@sql)go