SQL Server - SP_Validar Datos

   
Vista:

SP_Validar Datos

Publicado por Juan Pulido Bernardo (2 intervenciones) el 24/11/2008 16:16:43
Hola,

Tengo 2 bases de datos BD_ORIGEN y BD_DESTINO. BD_ORIGEN tiena una tabla EMPLEADO con 10 registros. BD_DESTINO tambien tiene la tabla EMPLEDO con 5 registros. Necesito un SP QUE haga un SELECT a la tabla EMPLEADO de la BD_ORIGEN y luego un INSERT en la tabla EMPLEADO de la BD_DESTINO, pero solo los registros que faltan replicarse(trasladarse). De tal manera que pueda igualarse, es decir ambos con 10 registros.

"Sí el registro no existe en la tabla EMPLEADO de la BD_DESTINO entonces insertar, Y sí existe terminar el proceso "

estoy intentado con esa sentencia, pero me falta validarlo:

INSERT INTO [SERVIDOR_B].[BD_DESTINO].[DBO].[EMPLEADO]
(COD, NOM,APE)

SELECT [SERVIDOR_A].[BD_ORIGEN].[DBO].[EMPLEADO]
(COD, NOM,APE)

PD: las tablas son solo de prueba
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:SP_Validar Datos

Publicado por Isaias (3308 intervenciones) el 25/11/2008 03:38:45
INSERT INTO BD_DESTINO.dbo.EMPLEADO
SELECT * FROM BD_ORIGEN WHERE COD NOT IN(SELECT COD FROM BD_DESTINO.dbo.EMPLEADO)
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

RE:SP_Validar Datos

Publicado por Juan Pulido Bernardo (2 intervenciones) el 25/11/2008 06:38:58
Hola,

Exactamente el codigo es esto:

INSERT INTO [MINARDI].[BNC].[dbo].[BNC_MovBanco](
[enbnc_id], [enbnc_numero], [enbnc_anio],
[enbnc_mes], [enbnc_dia], [enbnc_hora],
[empre_id], [cnta_id], [trc_id], [concepb_id],
[docope_id], [usua_id], [enbnc_nroope], [tope_id],
[enbnc_valor], [enbnc_total], [enbnc_dife],
[enbnc_observ], [estado_id], [aper_id], [subd_Id], [enbnc_ctacont] )

SELECT [enbnc_id], [enbnc_numero], [enbnc_anio],
[enbnc_mes], [enbnc_dia], [enbnc_hora],
[empre_id], [cnta_id], [trc_id], [concepb_id],
[docope_id], [usua_id], [enbnc_nroope], [tope_id],
[enbnc_valor], [enbnc_total], [enbnc_dife],
[enbnc_observ], [estado_id], [aper_id], [subd_Id], [enbnc_ctacont]
FROM [MCLAREN].[MIGRA].[dbo].[BNC_MovBanco]
WHERE [enbnc_id] NOT IN(SELECT [enbnc_id]FROM [MINARDI].[BNC].[dbo].[BNC_MovBanco] )


Y Sale el siguiente error:

"Servidor: mensaje 446, nivel 16, estado 9, línea 1
No se puede resolver el conflicto de intercalación para el operador equal to."

no entienfo bien el mensaje.

a gracias por responder tan pronto.
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

RE:SP_Validar Datos

Publicado por Isaias (3308 intervenciones) el 25/11/2008 18:13:26
Ambas tablas tienen diferente COLLATE, lo puedes revisar haciendo un simple.

SP_HELP <tutabla>

Por cada tabla.

Para resolver este problema (en tu select), debes indica en tu where el collate de cada campo o columna.

WHERE [enbnc_id] <TuCollate> NOT IN(SELECT [enbnc_id] FROM [MINARDI].[BNC].[dbo].[BNC_MovBanco] )
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