SQL Server - Enlazar tablas de bases de datos distintas

   
Vista:

Enlazar tablas de bases de datos distintas

Publicado por Carlos anticiudadano_1@hotmail.com (7 intervenciones) el 26/06/2015 10:31:01
Buen día a todos.

E estado buscando información sobre como relacionar datos de 2 tablas de diferente base de datos, pero aun no e encontrado nada.
Tengo dos bases de datos (eBob y Sbmx_BATCH) de diferentes programas. Con los datos de una tabla (Material) debo actualizar los datos de la otra (Contents). Por el momento tengo un código SQL:


UPDATE [eBob].[dbo].[tblVessel]
SET [eBob].[dbo].[tblVessel].[Contents] = [Sbmx_BATCH].[dbo].[Sbmx_Contenedores].[Material]
FROM [Sbmx_BATCH].[dbo].[Sbmx_Contenedores]
WHERE [eBob].[dbo].[tblVessel].[VesselName] = [Sbmx_BATCH].[dbo].[Sbmx_Contenedores].[Id]


Al ejecutar el código como consulta funciona perfecto, pero me gustaría que se hiciera por default.

Les agradecería cualquier solución que me pudieran dar.
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

Enlazar tablas de bases de datos distintas

Publicado por Rafael (88 intervenciones) el 26/06/2015 11:44:29
Vaya si lo que llamas por default es algo como que cada vez que se actualice [Sbmx_BATCH].[dbo].[Sbmx_Contenedores] actualice [eBob].[dbo].[tblVessel]

Podrias probar con un trigger :
1
2
3
4
5
6
7
8
9
CREATE TRIGGER TRG_PRUEBA
ON [Sbmx_BATCH].[dbo].[Sbmx_Contenedores]
AFTER UPDATE
AS
    UPDATE [eBob].[dbo].[tblVessel]
    SET    [eBob].[dbo].[tblVessel].[Contents] = inserted.[Material]
    FROM   inserted
    WHERE  [eBob].[dbo].[tblVessel].[VesselName] = inserted.[Id]
GO
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Enlazar tablas de bases de datos distintas

Publicado por Carlos (7 intervenciones) el 26/06/2015 13:08:12
Hola Rafael
Al ejecutar el Codigo me da el siguiente error:

Mens 2108, Nivel 15, Estado 1, Procedimiento TRG_PRUEBA, Línea 5
Cannot create trigger on 'Sbmx_BATCH.dbo.Sbmx_Contenedores' as the target is not in the current database.
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

Enlazar tablas de bases de datos distintas

Publicado por Rafael (88 intervenciones) el 26/06/2015 14:59:14
Prueba asi:

1
2
3
4
5
6
7
8
9
10
11
12
Use Sbmx_BATCH
GO
 
CREATE TRIGGER TRG_PRUEBA
ON [Sbmx_BATCH].[dbo].[Sbmx_Contenedores]
AFTER UPDATE
AS
    UPDATE [eBob].[dbo].[tblVessel]
    SET    [eBob].[dbo].[tblVessel].[Contents] = inserted.[Material]
    FROM   inserted
    WHERE  [eBob].[dbo].[tblVessel].[VesselName] = inserted.[Id]
GO
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Enlazar tablas de bases de datos distintas

Publicado por Carlos (7 intervenciones) el 26/06/2015 23:24:03
Muchas Gracias Rafael

Ejecute el código que me diste y me funciono, solo tuve que cambiar la condición (al parecer no era el mismo tipo de dato)

Saludos
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