Dados dois servidores MS SQL, cada um com um banco de dados diferente, como criar um pacote SSIS de modo que seja possível executar uma consulta complexa que preencha uma tabela temporária e depois transferir esses dados como uma inserção em massa para uma tabela permanente no outro servidor?
Hoje, isso é feito executando um programa externo que gera instruções de inserção para cada linha, mas isso é lento e resulta em muitos registros de transações.
Tenho procurado recursos sobre como fazer isso online, mas, como sempre, os documentos do MS não são muito úteis.
Tenho o visual studio 2013 e 2015, mas não consigo encontrar nenhuma ferramenta de criação de pacote SSIS, mesmo depois de instalar "DACFramework" e "SSDT".
Se você já instalou o SQL BI Pack para VS 2013 - http://www.microsoft.com/en-nz/download/details.aspx?id=42313
para criar o pacote SSIS Você só precisa:
Idéia principal do SSIS (e ferramentas semelhantes) - não apenas carregar dados de servidor para servidor, mas transformação e verificação em tempo real, e algumas dessas transformações difíceis (ou impossíveis) feitas apenas por ferramentas SQL.
Inserção em massa no SSIS significa carregar do arquivo de texto, quando você não precisa de nenhuma transformação
Servidor vinculado é uma boa solução se seus servidores tiverem boas conexões de rede, permitindo que você não se preocupe com ferramentas de terceiros (SSIS, bem como terceiros relacionados ao mecanismo do SQL Server).
Outra maneira - descarregue o resultado de SELECT complicado no arquivo de texto e use o arquivo simples de carga em massa no servidor de destino.
O utilitário BCP tem a opção de exportar o resultado de uma consulta para um arquivo (
queryout
). Eu sugeriria empacotar a consulta complexa como um procedimento armazenado para separar o "o que" do "como". Em seguida, use BCP para importá-lo na origem ou BULKIMPORT, dependendo do formato de arquivo escolhido.O BCP é apenas um programa de linha de comando para que possa ser agendado de fora do SQL Server ou do SQL Agent.
O agente também pode executar pacotes SSIS diretamente. O Assistente de Importação/Exportação pode criar o pacote SSIS.