Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

insert en otra base de datos de otro servidor

Estas en el tema de insert en otra base de datos de otro servidor en el foro de Bases de Datos General en Foros del Web. Hola a todos!!! pues eso, que necesito hacer un insert desde un trigger desde una base de datos que esta en un servidor a otra ...
  #1 (permalink)  
Antiguo 22/12/2004, 14:40
 
Fecha de Ingreso: febrero-2004
Mensajes: 49
Antigüedad: 20 años, 9 meses
Puntos: 0
insert en otra base de datos de otro servidor

Hola a todos!!!

pues eso, que necesito hacer un insert desde un trigger desde una base de datos que esta en un servidor a otra base de datos que esta en otro servidor. Me gustaria saber q es lo q tengo q hacer.

GRACIAS.

PD::: se me olvidaba poner q estoy usando MS sql server

Última edición por M@rLocK; 22/12/2004 a las 14:46 Razón: se me olvido poner q bd estoy usando
  #2 (permalink)  
Antiguo 22/12/2004, 16:35
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años, 7 meses
Puntos: 25
Necesitas crear un "linked server". Graficamente lo tienes en Enterprise Manager -> Servidor -> Security -> Linked Servers

Usando T-SQL revisa la sintaxis de sp_addlinkedserver

Una vez que lo tengas registrado y veas los objetos del servidor la insersion es tan simple como:
Código:
INSERT INTO servidor_remoto.db_remota.dueño.tabla
VALUES (1, 2, 3)
A ese estilo de nombramiento se le llama "fully qualified naming"
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #3 (permalink)  
Antiguo 22/12/2004, 19:57
Avatar de axel_mdq  
Fecha de Ingreso: mayo-2004
Ubicación: Mar del Plata
Mensajes: 157
Antigüedad: 20 años, 6 meses
Puntos: 0
Muy buena información. Siempre se aprende algo nuevo.
__________________
Saludos,

Alejandro. :adios:
  #4 (permalink)  
Antiguo 23/12/2004, 05:13
 
Fecha de Ingreso: febrero-2004
Mensajes: 49
Antigüedad: 20 años, 9 meses
Puntos: 0
Muchas gracias Mithrandir!!!

Lo acabo de probar y funciona correctamente.
  #5 (permalink)  
Antiguo 24/12/2004, 09:03
 
Fecha de Ingreso: febrero-2004
Mensajes: 49
Antigüedad: 20 años, 9 meses
Puntos: 0
Hola de nuevo,

Como ya dije en el post anterior me ha funcionado correctamente pero ahora he necesitado meterlo en un trigger en vez de un procedimiento almacenado y no me funciona. Me gustaria saber si lo habeis probado vosotros en un trigger y os ha funcionado, en cuyo caso os pediria q me dijerais puede ser lo q me falla en el trigger y no en el procedimiento almacenado.

GRACIAS.
  #6 (permalink)  
Antiguo 26/12/2004, 19:36
Avatar de axel_mdq  
Fecha de Ingreso: mayo-2004
Ubicación: Mar del Plata
Mensajes: 157
Antigüedad: 20 años, 6 meses
Puntos: 0
No lo probé en un trigger, pero puede fallar por distintos motivos. ¿Que tipo de trigger es?. Insert, delete o update??. Capaz que estes utilizando mal las tablas inserted o deleted.
Podes poner un ejemplo.
__________________
Saludos,

Alejandro. :adios:
  #7 (permalink)  
Antiguo 27/12/2004, 09:12
 
Fecha de Ingreso: febrero-2004
Mensajes: 49
Antigüedad: 20 años, 9 meses
Puntos: 0
Lo quiero utilizar en un trigger cada vez que se inserte o actualice.
Cuando me dijistes como se podia hacer lo probe en un procedimiento almacenado, tras ver q esto funcionaba, hice el trigger correspondiente y fue cuando este no quiso funcionar.
Luego he seguido haciendo pruebas como por ejemplo crear un procedimiento almacenado donde unicamente hace la siguiente llamada:
DECLARE @retstat as int
EXEC @retstat= servidor_remoto.db_remota.dueño.storedProcedure

Si llamo a este procedimiento desde otro, este funciona, sin embargo si llamo a este procedimiento desde un trigger (simplemente la llamada al procedimiento. Sin usar las tablas deleted ni inserted) no funciona.

Por lo q llegue a la conclusion de q por alguna razon q no condigo saber, este tipo de instrucciones no se pueden ejecutar si la llamada viene desde un trigger... lo cual no consigo entender, porque deberia dar igual.

Gracias por responderme.
  #8 (permalink)  
Antiguo 29/12/2004, 15:33
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años, 7 meses
Puntos: 25
Entonces has probado meterlo dentro de un SP local? Un truco simple para ejecutar el SP remoto.

Algo como:

CREATE PROCEDURE dbp.SP_Local
AS
DECLARE @retstat as int
EXEC @retstat= servidor_remoto.db_remota.dueño.storedProcedure

O aun mas simple:

CREATE PROCEDURE dbp.SP_Local
AS
/*codigo fuente de servidor_remoto.db_remota.dueño.storedProcedure pero usando las tablas remotamente*/

Si colocas cual es el mensaje de error que obtienes quiza te podamos ayudar mejor.
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #9 (permalink)  
Antiguo 29/12/2004, 16:29
 
Fecha de Ingreso: febrero-2004
Mensajes: 49
Antigüedad: 20 años, 9 meses
Puntos: 0
No me sale ningun mensaje de error, lo q pasa es q se queda bloqueado cuando hago la ejecucion desde el trigger, cosa q no ocurre desde el procedimiento almacenado.

Te agradezco q te tomes interes y q me estes ayudando a resolver este problema. De todas formas he encontrado una alternativa para no tener q ejecutarlo desde el trigger y ahora lo utilizo como te comente desde un procedimiento almacenado.

Gracias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 23:17.