Trigger para hacer inserciones en una base de datos distinta

18/03/2008 - 10:11 por Josevi | Informe spam
Hola a todos,

Mi cuestión es la siguiente:

Estoy utilizando una base de datos SQL Server Express 2005. Tengo dos bases
de datos. Quiero crear un trigger en una de ellas, para que cuando detecte un
cambio en una tabla, este trigger haga este mismo cambio (inserción
actualización eliminación) en una tabla de la otra base de datos.

Esto lo he hecho para distintas tablas de una misma base de datos, pero no
lo he podido hacer para tablas de distintas base de datos. Me da este error:
"No se puede crear el desencadenador 'MiDesencadenador' porque su esquema es
distinto del de la vista o tabla de destino."


Gracias de antemano y un Saludo

Preguntas similare

Leer las respuestas

#1 Maxi Accotto
18/03/2008 - 13:30 | Informe spam
Hola, podria exponer el codigo del trigger y el error textual del sql (con
el numero y todo) yo tengo varios triggers asi y no he tenido nunca un
problema.


Microsoft MVP SQLServer
www.sqltotalconsulting.com
-

"Josevi" escribió en el mensaje de
noticias:
Hola a todos,

Mi cuestión es la siguiente:

Estoy utilizando una base de datos SQL Server Express 2005. Tengo dos
bases
de datos. Quiero crear un trigger en una de ellas, para que cuando detecte
un
cambio en una tabla, este trigger haga este mismo cambio (inserción
actualización eliminación) en una tabla de la otra base de datos.

Esto lo he hecho para distintas tablas de una misma base de datos, pero no
lo he podido hacer para tablas de distintas base de datos. Me da este
error:
"No se puede crear el desencadenador 'MiDesencadenador' porque su esquema
es
distinto del de la vista o tabla de destino."


Gracias de antemano y un Saludo
Respuesta Responder a este mensaje
#2 Josevi
19/03/2008 - 08:24 | Informe spam
Gracias Maxi por tu respuesta tan rápida.

El codigo de mi trigger de prueba que me he creado es este:


SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TRIGGER Secaderos.TGPrueba
ON Secaderos.dbo.Clientes
AFTER INSERT
AS
BEGIN
SET NOCOUNT ON;
insert into prueba.dbo.tabla1(codigo)
values ('Hola')
END
GO

Y el mensaje de error que me devuelve es este:

Mens 2103, Nivel 15, Estado 1, Procedimiento TGPrueba, Línea 13
No se puede crear el desencadenador 'Secaderos.TGPrueba' porque su esquema
es distinto del de la vista o tabla de destino.



Gracias de antemano




"Maxi Accotto" wrote:

Hola, podria exponer el codigo del trigger y el error textual del sql (con
el numero y todo) yo tengo varios triggers asi y no he tenido nunca un
problema.


Microsoft MVP SQLServer
www.sqltotalconsulting.com
-

"Josevi" escribió en el mensaje de
noticias:
> Hola a todos,
>
> Mi cuestión es la siguiente:
>
> Estoy utilizando una base de datos SQL Server Express 2005. Tengo dos
> bases
> de datos. Quiero crear un trigger en una de ellas, para que cuando detecte
> un
> cambio en una tabla, este trigger haga este mismo cambio (inserción
> actualización eliminación) en una tabla de la otra base de datos.
>
> Esto lo he hecho para distintas tablas de una misma base de datos, pero no
> lo he podido hacer para tablas de distintas base de datos. Me da este
> error:
> "No se puede crear el desencadenador 'MiDesencadenador' porque su esquema
> es
> distinto del de la vista o tabla de destino."
>
>
> Gracias de antemano y un Saludo


Respuesta Responder a este mensaje
#3 Maxi Accotto
19/03/2008 - 13:06 | Informe spam
Hola, el problema es el squema del trigger vs el de la tabla donde queres
aplicar el trigger, la tabla tiene el schema sacaderos?


Microsoft MVP SQLServer
www.sqltotalconsulting.com
-

"Josevi" escribió en el mensaje de
noticias:
Gracias Maxi por tu respuesta tan rápida.

El codigo de mi trigger de prueba que me he creado es este:


SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TRIGGER Secaderos.TGPrueba
ON Secaderos.dbo.Clientes
AFTER INSERT
AS
BEGIN
SET NOCOUNT ON;
insert into prueba.dbo.tabla1(codigo)
values ('Hola')
END
GO

Y el mensaje de error que me devuelve es este:

Mens 2103, Nivel 15, Estado 1, Procedimiento TGPrueba, Línea 13
No se puede crear el desencadenador 'Secaderos.TGPrueba' porque su esquema
es distinto del de la vista o tabla de destino.



Gracias de antemano




"Maxi Accotto" wrote:

Hola, podria exponer el codigo del trigger y el error textual del sql
(con
el numero y todo) yo tengo varios triggers asi y no he tenido nunca un
problema.


Microsoft MVP SQLServer
www.sqltotalconsulting.com
-

"Josevi" escribió en el mensaje de
noticias:
> Hola a todos,
>
> Mi cuestión es la siguiente:
>
> Estoy utilizando una base de datos SQL Server Express 2005. Tengo dos
> bases
> de datos. Quiero crear un trigger en una de ellas, para que cuando
> detecte
> un
> cambio en una tabla, este trigger haga este mismo cambio (inserción
> actualización eliminación) en una tabla de la otra base de datos.
>
> Esto lo he hecho para distintas tablas de una misma base de datos, pero
> no
> lo he podido hacer para tablas de distintas base de datos. Me da este
> error:
> "No se puede crear el desencadenador 'MiDesencadenador' porque su
> esquema
> es
> distinto del de la vista o tabla de destino."
>
>
> Gracias de antemano y un Saludo


Respuesta Responder a este mensaje
#4 Josevi
19/03/2008 - 15:47 | Informe spam
Hola Maxi,

Gracias por tu atención,

ya resolví, el problema. El código correcto es el siguiente

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TRIGGER [dbo].[TGPrueba]
ON [dbo].[Clientes]
AFTER INSERT
AS
BEGIN
SET NOCOUNT ON;
insert into prueba.dbo.tabla1(codigo)
values ('Hola')
END
GO

Un saludo a todos



"Maxi Accotto" wrote:

Hola, el problema es el squema del trigger vs el de la tabla donde queres
aplicar el trigger, la tabla tiene el schema sacaderos?


Microsoft MVP SQLServer
www.sqltotalconsulting.com
-

"Josevi" escribió en el mensaje de
noticias:
> Gracias Maxi por tu respuesta tan rápida.
>
> El codigo de mi trigger de prueba que me he creado es este:
>
>
> SET ANSI_NULLS ON
> GO
> SET QUOTED_IDENTIFIER ON
> GO
> CREATE TRIGGER Secaderos.TGPrueba
> ON Secaderos.dbo.Clientes
> AFTER INSERT
> AS
> BEGIN
> SET NOCOUNT ON;
> insert into prueba.dbo.tabla1(codigo)
> values ('Hola')
> END
> GO
>
> Y el mensaje de error que me devuelve es este:
>
> Mens 2103, Nivel 15, Estado 1, Procedimiento TGPrueba, Línea 13
> No se puede crear el desencadenador 'Secaderos.TGPrueba' porque su esquema
> es distinto del de la vista o tabla de destino.
>
>
>
> Gracias de antemano
>
>
>
>
> "Maxi Accotto" wrote:
>
>> Hola, podria exponer el codigo del trigger y el error textual del sql
>> (con
>> el numero y todo) yo tengo varios triggers asi y no he tenido nunca un
>> problema.
>>
>>
>> Microsoft MVP SQLServer
>> www.sqltotalconsulting.com
>> -
>>
>> "Josevi" escribió en el mensaje de
>> noticias:
>> > Hola a todos,
>> >
>> > Mi cuestión es la siguiente:
>> >
>> > Estoy utilizando una base de datos SQL Server Express 2005. Tengo dos
>> > bases
>> > de datos. Quiero crear un trigger en una de ellas, para que cuando
>> > detecte
>> > un
>> > cambio en una tabla, este trigger haga este mismo cambio (inserción
>> > actualización eliminación) en una tabla de la otra base de datos.
>> >
>> > Esto lo he hecho para distintas tablas de una misma base de datos, pero
>> > no
>> > lo he podido hacer para tablas de distintas base de datos. Me da este
>> > error:
>> > "No se puede crear el desencadenador 'MiDesencadenador' porque su
>> > esquema
>> > es
>> > distinto del de la vista o tabla de destino."
>> >
>> >
>> > Gracias de antemano y un Saludo
>>
>>

Respuesta Responder a este mensaje
#5 Maxi Accotto
20/03/2008 - 00:23 | Informe spam
Exacto :-)


Microsoft MVP SQLServer
www.sqltotalconsulting.com
-

"Josevi" escribió en el mensaje de
noticias:
Hola Maxi,

Gracias por tu atención,

ya resolví, el problema. El código correcto es el siguiente

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TRIGGER [dbo].[TGPrueba]
ON [dbo].[Clientes]
AFTER INSERT
AS
BEGIN
SET NOCOUNT ON;
insert into prueba.dbo.tabla1(codigo)
values ('Hola')
END
GO

Un saludo a todos



"Maxi Accotto" wrote:

Hola, el problema es el squema del trigger vs el de la tabla donde queres
aplicar el trigger, la tabla tiene el schema sacaderos?


Microsoft MVP SQLServer
www.sqltotalconsulting.com
-

"Josevi" escribió en el mensaje de
noticias:
> Gracias Maxi por tu respuesta tan rápida.
>
> El codigo de mi trigger de prueba que me he creado es este:
>
>
> SET ANSI_NULLS ON
> GO
> SET QUOTED_IDENTIFIER ON
> GO
> CREATE TRIGGER Secaderos.TGPrueba
> ON Secaderos.dbo.Clientes
> AFTER INSERT
> AS
> BEGIN
> SET NOCOUNT ON;
> insert into prueba.dbo.tabla1(codigo)
> values ('Hola')
> END
> GO
>
> Y el mensaje de error que me devuelve es este:
>
> Mens 2103, Nivel 15, Estado 1, Procedimiento TGPrueba, Línea 13
> No se puede crear el desencadenador 'Secaderos.TGPrueba' porque su
> esquema
> es distinto del de la vista o tabla de destino.
>
>
>
> Gracias de antemano
>
>
>
>
> "Maxi Accotto" wrote:
>
>> Hola, podria exponer el codigo del trigger y el error textual del sql
>> (con
>> el numero y todo) yo tengo varios triggers asi y no he tenido nunca un
>> problema.
>>
>>
>> Microsoft MVP SQLServer
>> www.sqltotalconsulting.com
>> -
>>
>> "Josevi" escribió en el mensaje de
>> noticias:
>> > Hola a todos,
>> >
>> > Mi cuestión es la siguiente:
>> >
>> > Estoy utilizando una base de datos SQL Server Express 2005. Tengo
>> > dos
>> > bases
>> > de datos. Quiero crear un trigger en una de ellas, para que cuando
>> > detecte
>> > un
>> > cambio en una tabla, este trigger haga este mismo cambio (inserción
>> > actualización eliminación) en una tabla de la otra base de datos.
>> >
>> > Esto lo he hecho para distintas tablas de una misma base de datos,
>> > pero
>> > no
>> > lo he podido hacer para tablas de distintas base de datos. Me da
>> > este
>> > error:
>> > "No se puede crear el desencadenador 'MiDesencadenador' porque su
>> > esquema
>> > es
>> > distinto del de la vista o tabla de destino."
>> >
>> >
>> > Gracias de antemano y un Saludo
>>
>>

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida