Infelizmente, não posso fazer backup e restaurar, pois o novo banco de dados está em uma versão mais antiga do SQL.
Quando executo o seguinte script, recebo este erro:
Msg 117, Level 15, State 1, Line 1
The object name 'eih-dr01.eih.ehs.org.DBA.dbo.fp_monthly' contains more than the maximum number of prefixes. The maximum is 2.
declare @table varchar(255),
@sql nvarchar(max)
declare c cursor local for
select st.name from sys.tables st
open c
fetch next from c into @table
set @sql = 'select * into [eih-dr01.eih.ehs.org].DBA.dbo.' + @table + ' from ' + @table
print @sql
exec sp_executesql @sql
fetch next from c into @table
close c
deallocate c
Pergunta: Qual prefixo é supérfluo?
Pergunta real Por que meus caracteres '[',']' não estão aparecendo na minha instrução sql dinâmica?
De acordo com a cláusula SELECT - INTO
Em outras palavras, o prefixo supérfluo é o servidor remoto
Você provavelmente poderia atingir seu objetivo criando tabelas vazias no servidor remoto e alterando seu SQL dinâmico para
INSERT INTO server.database.schema.table select from source
Se bem me lembro, funciona ao contrário.
Vincule o servidor antigo ao novo e altere sua instrução select para:
Não tenho onde testá-lo, mas tenho quase certeza de que já fiz isso no passado e funcionou muito bem.