Buenas,
estoy intentando crear un desencadenador que en el momento en que se inserte
o modifique cualquier dato en la Tabla1, automáticamente me actualice los
datos en una tabla (Tabla_Db1) externa en access. He creado el ODBC y me la
consulta correctamente, el caso es que al insertar una línea en Tabla1, el
trigger me peta, me da el siguiente error:
Servidor: mensaje 7391, nivel 16, estado 1, procedimiento prueba_ins, línea 16
No se puede realizar la operación. El proveedor OLE DB 'MSDASQL' no pudo
iniciar una transacción distribuida.
[OLE/DB provider returned message: [Microsoft][Controlador ODBC Microsoft
Access]Atributo o identificador de opción no válido ]
Traza de error de OLE DB [OLE/DB Provider 'MSDASQL'
ITransactionJoin::JoinTransaction returned 0x8004d00a].
Alguien tiene alguna idea? Os adjunto el código del trigger a ver si veis
algún fallo. Muchas gracias.
CREATE TRIGGER prueba_ins ON dbo.Tabla1
FOR INSERT
AS
BEGIN
DECLARE @ins_ident int
DECLARE @ins_nombre char
DECLARE @ins_apellidos char
DECLARE @ins_telefono char
select @ins_ident = ident from inserted
select @ins_nombre = nombre from inserted
select @ins_apellidos = apellidos from inserted
select @ins_telefono = telefono from inserted
insert into openquery(PRUEBA, 'select * from Tabla_Db1')
values (@ins_ident, @ins_nombre, @ins_apellidos, @ins_telefono)
END
De momento solo estoy intentando que funcione con la operación de insertar.
Cuando le intento insertar la siguiente fila es cuando peta y da el error:
insert into Tabla1 values (3,'asdfas','etretre','89834')
Las tablas tienen exactamente los mismos campos, es muy sencilla, consta de
identificador, nombre, apellidos y telefono. La he creado de prueba para
hacerlo funcionar y posteriormente pasarlo a la base de datos real que es
mucho más compleja. Teneis alguna idea por favor??
Gracias!!!
CRM Woman
Leer las respuestas