Como atualizo um banco de dados de treinamento com os dados do banco de dados de produção?
-
09-06-2019 - |
Pergunta
Tenho um sistema específico em nossa rede onde precisamos manter uma instalação de treinamento.O sistema usa o SQL Server 2000 como mecanismo de banco de dados e preciso configurar um sistema para atualizar regularmente os dados do banco de dados de treinamento com os dados do banco de dados de produção.
Quero usar o SSIS, pois temos servidores SQL 2005 nos quais posso executar o processo.Tenho bastante experiência em SQL, mas não muito com SSIS.Tenho tentado fazer isso com a "Tarefa de transferência de banco de dados", mas não tenho tido muita sorte, pois sempre gera um erro.
Se ignorarmos o uso de itens de configuração, etc. e fingirmos que todos os nomes de bancos de dados e assim por diante estão codificados, terei o seguinte:Uma única "Tarefa de Transferência de Banco de Dados" do SSIS com as seguintes propriedades:
- Substituição de destino:Verdadeiro
- Ação:cópia de
- Método:Banco de dados Online
O erro que recebo é:
Erro:O método Execute na tarefa retornou o código de erro 0x80131500 (ERROR:errorCode=-1073548784 description=A execução da consulta "EXEC dbo.sp_addrole @rolename = N'XXXXX' " falhou com o seguinte erro:"A função 'XXXXX' já existe no banco de dados atual.".Possíveis motivos de falha:Problemas com a consulta, propriedade "ResultSet" não configurada corretamente, parâmetros não configurados corretamente ou conexão não estabelecida corretamente.helpFile= helpContext=0 idofInterfaceWithError={8BDFE893-E9D8-4D23-9739-DA807BCDC2AC}).O método Execute deve ser bem-sucedido e indicar o resultado usando um parâmetro "out".
Tenho certeza de que há algo óbvio acontecendo aqui, mas certamente se a tarefa está definida para substituir a pré-existência da função, isso não deveria importar?Alguém sabe o que preciso fazer para que isso funcione?
Solução
Aparentemente, isso deve ser corrigido no SQLServer 2005 SP2 Veja aqui.Parece que você também precisa corrigir a máquina cliente se estiver executando o pacote SSIS no Visual Studio.