T-SQL - Existe uma maneira (gratuita) de comparar dados em duas tabelas?
eu tenhotable a
etable b
. (SQL Server 2008)
Ambas as tabelas têm exatamente o mesmo esquema.
Para os fins desta pergunta, consideretable a
= minha tabela de desenvolvimento local,table b
= a mesa ao vivo.
Preciso criar um script SQL (contendoUPDATE/DELETE/INSERT
instruções) que atualizarão a tabela b para ser a mesma da tabela a. Esse script será implantado no banco de dados ativo.
Alguma ferramenta gratuita por aí que possa fazer isso ou, melhor ainda, uma maneira de fazer isso sozinho?
Acho que provavelmente preciso fazer algum tipo de junção em todos os campos das tabelas e gerar SQL dinâmico com base nisso.
Alguém tem alguma ideia?
EDITAR
Ok, pensei em esclarecer um pouco essa pergunta.
A tabela que preciso sincronizar é uma tabela de consulta simples. Os dados são muito simples e diretos.
Aqui está uma idéia do queTABLE A
pode parecer com:
IdFoo Activity IsFoo
1 Foo 1
2 Bar 0
Aqui está uma idéia do queTABLE B
pode parecer com:
IdFoo Activity IsFoo
1 Foo 1
2 Bar 1
Basicamente, tudo o que quero fazer é atualizar esseBIT
coluna (IsFoo
) noTABLE B
para corresponder ao valor correspondente emTABLE A
para o mesmo IdFoo.
Tenha em mente:
TABLE A
está na minha máquina localTABLE B
está no servidor ativoObviamente, tenho um backup (confiável) deTABLE B
na minha máquina local na qual eu preciso fazer um script e, em seguida, execute o script no servidor ativo.
A tabela também possui integridade referencial (outras colunas que não mostrei). O que significa que não posso simplesmente excluir tudoTABLE B
e faça uma inserção deTABLE A
.
Este script será uma vez desativado. Portanto, não há necessidade de fazer coisas como servidor vinculado, replicação, etc. Aprecie as respostas, pessoal. =)
EDITAR:
Ok - então eu fui com a resposta de Oleg (comparação de dados do VS2010). Rápido, fácil e funciona um charme.
Para não dizer que as outras respostas estão incorretas. Agradeço todas as respostas!