Trigger en sql

Tengo un pequeño problema en sql :
CREATE TRIGGER insertar_registro
ON tabla_traspaso FOR INSERT AS
insert into OPENQUERY(oracle,'select * from oracle')
select * from tabla_traspaso
Lo que pasa es que cuando realizo un trigger este lo crea bien, pero cuando este es afectado(al ejecutar) al ingresar datos a la tabla (tabla_traspaso), este se cae... ¿sera qué el trigger de sql no acepta bases linkeadas?

1 respuesta

Respuesta
1
Parece que el trigger está bien montado
E imagino que cuando haces una select sobre la tabla remota te funciona bien (select * from OPENQUERY(oracle,'select * from oracle'), y que además los campos de una tabla y otra son del mismo tipo y demás, pero hay una cosa que no me convence y es que:
Cuando haces el insert into openquery, ese openquery no está nada restringido, no tiene criterios en el where, por lo que el insert funciona TRAYÉNDOSE A LOCAL TODA LA TABLA oracle y como sea muy grande... te tuesta la máquina. Una vez que tiene los registros en una tabla temporal en local, hace la inserción y se lleva a remoto otra vez todos los datos, con lo cual el tiempo y el trabajo se dispara.
Yo lo haría así:
insert into openquery(oracle,'select * from oracle WHERE 1=0 ')
select * from tabla_traspaso
Si no lo haces así y la tabla remota es muy grande... olvídate.
¿Cómo te ha ido?
Espero que bien.
Si ya no tienes más dudas, ¿podrías hacer el favor de valorar la respuesta y así poder cerrarla?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas