Eu tenho várias centenas (atualmente 466, mas sempre em crescimento) de tabelas que tenho que copiar de um servidor para outro.
Eu nunca tive que fazer isso antes, então não tenho certeza de como abordar isso. Todas as tabelas estão no mesmo formato:Cart<Eight character customer number>
Isso faz parte de um projeto maior do qual estou mesclando todas essas Cart<Number>
tabelas em uma Carts
tabela, mas essa é uma questão totalmente diferente.
Alguém tem um método de práticas recomendadas que eu possa usar para copiar todas essas tabelas? Os nomes dos bancos de dados nos dois servidores são os mesmos, se isso ajudar. E, como disse anteriormente, tenho a sa
conta para poder fazer o que for necessário para obter os dados de A a B. Os dois servidores também estão no mesmo farm de servidores.
fonte
Respostas:
Você pode usar a tarefa "Exportar dados" do SQL Server Management Studio. Clique com o botão direito do mouse no banco de dados no SSMS, selecione Tarefas e, em seguida, "Exportar Dados". Ele iniciará um assistente interativo que permitirá copiar tabelas de um servidor para outro, embora você precise recriar os índices por conta própria. O assistente cria um pacote SSIS temporário (embora você também possa optar por salvá-lo) e é relativamente rápido.
fonte
Aqui está uma abordagem rápida e suja que precisa apenas de um servidor vinculado, em cada direção, com privilégios suficientes, compatibilidade de agrupamento e acesso a dados habilitados. Você executa isso no servidor vinculado de origem para gerar o SQL dinâmico que será executado no servidor vinculado de destino.
fonte
Se você deseja que algo que possa ser roteirizado seja facilmente executável à medida que você testa isso e faz pequenas alterações, confira minha resposta aqui:
Importar dados de um banco de dados para outro script
That answer describes using a SQLCLR stored procedure which makes use of the
SqlBulkCopy
class in .NET. Using that stored procedure can be done in a cursor that loops through the tables. This allows for easy editing of the process as well as accounting for new tables, or easily excluding one or more table via aWHERE
condition in the cursor query.fonte
Você pode usar BCP OUT e BULK INSERT INTO no banco de dados de destino. Você pode usar este script
Você pode usar o SSIS (importação / exportação de dados) para fazer a transferência de dados também.
fonte