SQL Server - DTS con WHERE NOT EXISTq

 
Vista:

DTS con WHERE NOT EXISTq

Publicado por carina (1 intervención) el 07/03/2007 09:26:18
estimados:
tengo un DTS con comandos Activex. el objetivo es copiar de BD_Origen a Bd_destino unas tablas, pero verificando que los registros no existan en destino para que no genere error de claves duplicadas. probe una sentencia en sqlserver y funciono ok, pero a la hora de insertarlo en el dts no me funciona lo de indicar la bd_origen y bd_destino. ya que en la misma sentencia he de incluir las 2 BD. transcribo la sentencia SQL(este es el select si estan en la misma BD:
SELECT NIF FROM [empresa$Customer] WHERE (NOT EXISTS (SELECT clsnif FROM cls_trans WHERE clsnif = [empresa$customer].[NIF]))

en el dts:
' SELECCIONO CLIENTES
mySQLCmdText = "select DISTINCT [NIF], Name from [empresa$Customer] as t WHERE (NOT EXISTS (SELECT clsnif FROM [Cls_trans] WHERE clsnif = t.[NIF]))"
recCustomer.Open mySQLCmdText, corigen --aqui indico BDORIGEN pero como indico BD destino??????

ademas esto seria un SELECT, pero como condiciono el INSERT where no exists???

Espero puedan ayudarme
Saludos cordiales
Carina
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:DTS con WHERE NOT EXISTq

Publicado por eljhonb (124 intervenciones) el 07/03/2007 14:46:37
Bueno, lo de las bases de datos diferentes se puede solucionar facilmente: acá te pongo un ejemplo de un join entre dos tablas de diferentes bases de datos.
Select *
from [BD1].dbo.[tabla1] B1 inner join [BD2].dbo.[tabla2] B2 on B1.campo1 = B2.Campo2
where

y la inserción sería algo como así:

INSERT INTO Tabla2 (c1, c2,c3.... Cn)
SELECT [T1].C1, [T1].C2....... [T1].Cn
FROM [BD1].dbo.[tabla1] T1
WHERE T1.C1 Not in (Select C1 from [BD2].dbo.Tabla2)

o así:

INSERT INTO Tabla2 (c1, c2,c3.... Cn)
SELECT [T1].C1, [T1].C2....... [T1].Cn
FROM [BD1].dbo.[tabla1] T1
WHERE NOT EXISTS (Select C1 from [BD2].dbo.Tabla2)

espero te sirva,
Salu2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar