SQL - Como puedo hacer este TRIGGER

 
Vista:

Como puedo hacer este TRIGGER

Publicado por Madpunk (3 intervenciones) el 16/09/2004 10:40:42
Hola!!

Intento hacer un trigger para que cuando haga un INSERT en una tabla, automaticamente me haga el mismo INSERT en otra tabla distinta.

No tengo ni idea de esto, pero lo que yo e hecho ha sido lo sieguiente

CREATE TRIGGER tr_prueba_insert ON clientes
FOR INSERT
AS
INSERT INTO contactos (idcliente,cliente) values (idcliente,cliente)

Y me dice que no puedo usar nombres de columnas como puedo entonces recoger los datos que ha añadido??

una de las tabla es Clientes y la otra Contactos.

Gracias

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

RE:Como puedo hacer este TRIGGER

Publicado por miguel (1 intervención) el 16/09/2004 16:57:19
primero tienes q selecionar el id_cliente y cliente q quieres insetar en la otra tabla.
primer crea un select y guarda estos valores en otras variables, ejm: idcli y cli
y recien puedes INSERT INTO contactos (idcliente,cliente) values (idcli,cli)
itenta esto mientras no te responde Isaias, ya te respondera el tio

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

RE:Como puedo hacer este TRIGGER

Publicado por Liliana (426 intervenciones) el 17/09/2004 19:17:24
Hola,
A falta de Isaías...
En un trigger para INSERT tenés los datos disponibles en la tabla virtual INSERTED, entonces la sintaxis correcta para tu caso sería:

CREATE TRIGGER tr_prueba_insert ON clientes
FOR INSERT
AS
INSERT INTO contactos
SELECT idcliente, cliente
FROM Inserted
GO

Saludos, Liliana.
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

RE:Como puedo hacer este TRIGGER

Publicado por Isaías Islas (5072 intervenciones) el 20/09/2004 18:08:50
Bueno, estaba de vacaciones, pero mi amiga Liliana ya se encargo del asunto.

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

RE:Como puedo hacer este TRIGGER

Publicado por Madpunk (3 intervenciones) el 21/09/2004 10:45:09
Gracias por vuestra ayuda, he solucionado ese problema pero al ejecutar el TRIGGER me da un error ya que el INSERT que debe de hacer es en un servidor vinculado remoto, el error que me da es:

"No se pueden iniciar mas transacciones en esta session"
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

RE:Como puedo hacer este TRIGGER

Publicado por Isaías Islas (5072 intervenciones) el 22/09/2004 00:36:39
Amigo, le da error porque el TRIGGER en si, es una transaccion, por tanto NO puede haber una transaccion y mucho menos DISTRIBUIDA a otro servidor, lo que tiene que hacer, es que antes de hacer el DELETE, deberi hacer el INSERT, ejemplo:

BEGIN TRAN MyTransaccion
-- Guardo el registro que voy a borrar
INSERT INTO MyServer.MyBase.dbo.MyTabla
SELECT * FROM MyTabla WHERE....................

-- Borro el registro
DELETE FROM MyTabla WHERE.................
IF @@ROWCOUNT = 0
BEGIN
ROLLBACK TRAN MyTransaccion
SELECT 'Error en el borrado del registro'
RETURN(0)
END
COMMIT TRAN MyTransaccion
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