SQL Server - Enlazar tablas de bases de datos distintas

 
Vista:
sin imagen de perfil
Val: 3
Ha aumentado su posición en 13 puestos en SQL Server (en relación al último mes)
Gráfica de SQL Server

Enlazar tablas de bases de datos distintas

Publicado por Carlos (9 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
sin imagen de perfil
Val: 86
Ha disminuido su posición en 2 puestos en SQL Server (en relación al último mes)
Gráfica de SQL Server

Enlazar tablas de bases de datos distintas

Publicado por Rafael (110 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
sin imagen de perfil
Val: 3
Ha aumentado su posición en 13 puestos en SQL Server (en relación al último mes)
Gráfica de SQL Server

Enlazar tablas de bases de datos distintas

Publicado por Carlos (9 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
sin imagen de perfil
Val: 86
Ha disminuido su posición en 2 puestos en SQL Server (en relación al último mes)
Gráfica de SQL Server

Enlazar tablas de bases de datos distintas

Publicado por Rafael (110 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
sin imagen de perfil
Val: 3
Ha aumentado su posición en 13 puestos en SQL Server (en relación al último mes)
Gráfica de SQL Server

Enlazar tablas de bases de datos distintas

Publicado por Carlos (9 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