Мне нужно сделать запрос к нескольким базам данных. Я получил часть для создания запроса для каждой базы данных, но теперь мне нужно поместить результат во что-то для каждого запроса, чтобы я мог его вернуть.
@ требуемый запрос
ALTER PROCEDURE [dbo].[RequeteMultiBd]
@requete varchar(max)
AS
BEGIN
--get server + database name
select dbo.trim(Serveur)+'.'+ dbo.trim(db) as name, row_number() over (order by db) seq into #tmp from dbo.DataBase;
declare @name sysname
declare @sql nvarchar(max)
declare @seq int
set @seq = 0
--getting the next name and seq
select top 1 @name = name, @seq = seq
from #tmp where seq > @seq order by seq
set @sql = replace(@requete, '<bd>', @name);
--Trying to init the table (that part doesnt work)
insert into #result exec( @sql );
--Filling up the table
WHILE (1=1)
BEGIN
select top 1 @name = name, @seq = seq
from #tmp where seq > @seq order by seq
if(@@rowcount = 0) break;
set @sql = replace(@requete, '<bd>', @name);
insert into #result exec( @sql );
END
select * from #result
END
Из этого кода я получаю эту ошибку, потому что #result не завершается. Мне нужно создать его с динамическими именами столбцов, но как?
Неверное имя объекта '#result'