--
--
----------------------
Você recebeu essa mensagem porque você esta inscrito no grupo "SQL Server Brasil" do Google Groups.
Para postar nesse grupo, envie mensagem para sql-serv...@googlegroups.com
Para sair desse grupo, envie mensagem para sql-server-bra...@googlegroups.com
Para mais opções, visite a página desse grupo em http://groups.google.com/group/sql-server-brasil
----------------------
You received this message because you are subscribed to the Google Groups "SQL Server Brasil" group.
To post to this group, send email to sql-serv...@googlegroups.com
To unsubscribe from this group, send email to sql-server-bra...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sql-server-brasil
---
Você está recebendo esta mensagem porque se inscreveu no grupo "SQL Server Brasil" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para sql-server-bra...@googlegroups.com.
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
Boa tarde Igor,
Eu acho (de longe) o join entre as tabelas do banco de dados mais fácil de fazer, mas pelo MERGE acho que dá certo também.
Fiz rápid, tem que trabalhar mais o código, mas é algo por aqui.
Como você pode ter uma PK composta, considerei o JOIN. Se for simples, o NOT IN daria certo também.
Depois você inverte a order dos INSERTs para ver o que acontece.
Use TempDB
Go
SET NOCOUNT ON
declare @tabela1 table (idx smallint, nome1 varchar(200))
declare @tabela2 table (idx smallint, nome2 varchar(200))
insert into @tabela1 (idx, nome1) values (1, 'valor1')
insert into @tabela1 (idx, nome1) values (2, 'valor2')
insert into @tabela1 (idx, nome1) values (3, 'valor3')
insert into @tabela1 (idx, nome1) values (4, 'valor4')
insert into @tabela2 (idx, nome2) values (5, 'valor5')
insert into @tabela2 (idx, nome2) values (6, 'valor6')
insert into @tabela2 (idx, nome2) values (7, 'valor7')
insert into @tabela2 (idx, nome2) values (1, 'valor1') -- tem na tabela 1, não pode inserir
insert into @tabela1 select t2.idx, t2.nome2 from @tabela2 t2 -- vai duplicar, pois não tem PK
insert into @tabela1 select t2.idx, t2.nome2 from @tabela2 t2 left join @tabela1 t1 on t1.idx=t2.idx where t1.idx is null
select * from @tabela1 order by idx
Atenciosamente,
Jefferson
--