Comparar tablas e insertar, capítulo 2

28/09/2005 - 15:10 por Jose_A | Informe spam
Al final no doy con ello:
Tengo una tabla en una bd en un server y quiero actualizarla con los
registros nuevos de una consulta select a otro server. La consulta select es
así:


select nb.num_reg, nb.camp1, nb.camp2,nb.camp5,nb.camp3,nb.camp4,
case when nacamp6 IS null then nb.camp6
when nacamp6 = '' then nb.camp6
else nacamp6
END,
nb.camp7, mb.camp8,
case when c.camp9 IS null then nb.camp9
when c.camp9 = '' then nb.camp9
else c.camp9
END,
nb.camp10,nb.camp11,nb.camp12,
From tabla1 nb (NOLOCK) LEFT OUTER JOIN tabla2 na (NOLOCK) ON nb.camp6 =
na.codigo
LEFT OUTER JOIN tabla3 c (NOLOCK) ON nb.camp9 = c.codigo ,tabla4 mb (NOLOCK)
Where nb.fecha = '20080101' And (nb.camp11 = 'D' or nb.camp11 = 'T')
and nb.camp3 <> 0 and nb.camp11 = mb.codigo order by nb.fecha


Entonces yo lo que hago es:

execute ServerP.bdpruebas.dbo.sp_executesql N'truncate table ttodos'
INSERT INTO OPENQUERY(ServerP, 'select * from ttodos where 1=2')

y la "select" al final del insert into para que me inserte todo...
¿como hago que me inserte sólo los que aparecen en la select y no están en
la tabla ttodos de la bd en el ServerP?
Carlos, Help please!!!

Preguntas similare

Leer las respuestas

#1 Eleazar
28/09/2005 - 15:55 | Informe spam
Revisa la instruccion insert...select

use bd1
Insert into tabladestino (campos...)
Select campos,...
From servidor2.bd2.dbo.tablaorigen
Where <condicion>
suerte

"Jose_A" escribió en el mensaje
news:
Al final no doy con ello:
Tengo una tabla en una bd en un server y quiero actualizarla con los
registros nuevos de una consulta select a otro server. La consulta select


es
así:


select nb.num_reg, nb.camp1, nb.camp2,nb.camp5,nb.camp3,nb.camp4,
case when nacamp6 IS null then nb.camp6
when nacamp6 = '' then nb.camp6
else nacamp6
END,
nb.camp7, mb.camp8,
case when c.camp9 IS null then nb.camp9
when c.camp9 = '' then nb.camp9
else c.camp9
END,
nb.camp10,nb.camp11,nb.camp12,
From tabla1 nb (NOLOCK) LEFT OUTER JOIN tabla2 na (NOLOCK) ON nb.camp6 > na.codigo
LEFT OUTER JOIN tabla3 c (NOLOCK) ON nb.camp9 = c.codigo ,tabla4 mb


(NOLOCK)
Where nb.fecha = '20080101' And (nb.camp11 = 'D' or nb.camp11 = 'T')
and nb.camp3 <> 0 and nb.camp11 = mb.codigo order by nb.fecha


Entonces yo lo que hago es:

execute ServerP.bdpruebas.dbo.sp_executesql N'truncate table ttodos'
INSERT INTO OPENQUERY(ServerP, 'select * from ttodos where 1=2')

y la "select" al final del insert into para que me inserte todo...
¿como hago que me inserte sólo los que aparecen en la select y no están en
la tabla ttodos de la bd en el ServerP?
Carlos, Help please!!!
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida