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

Ayuda Con trigger

Estas en el tema de Ayuda Con trigger en el foro de SQL Server en Foros del Web. Tengo el siguiente trigger. El problemas es cuando agrego un registro en la tabla de Resgistros. Si Funciona el Trigger pero pega en la Tabla ...
  #1 (permalink)  
Antiguo 03/06/2009, 09:20
 
Fecha de Ingreso: marzo-2006
Mensajes: 124
Antigüedad: 18 años, 1 mes
Puntos: 1
Pregunta Ayuda Con trigger

Tengo el siguiente trigger.

El problemas es cuando agrego un registro en la tabla de Resgistros.
Si Funciona el Trigger pero pega en la Tabla de Control el 1er Registro de la Tabla de Registros.

Que Podra Estar mal o que debo de Agregar??

CREATE TRIGGER tr_add_reg_tbl_ctrl ON Registros
FOR INSERT
AS
BEGIN TRANSACTION
DECLARE @Clave decimal, @Fecha datetime
SELECT @Clave=Folio, @Fecha=Fecha
FROM Registros

INSERT INTO Control (Clave, Fecha)
VALUES(@Clave, @Fecha)
IF @@error = 0
COMMIT TRANSACTION
ELSE
ROLLBACK TRANSACTION
  #2 (permalink)  
Antiguo 03/06/2009, 09:43
 
Fecha de Ingreso: noviembre-2006
Ubicación: México
Mensajes: 866
Antigüedad: 17 años, 5 meses
Puntos: 8
Respuesta: Ayuda Con trigger

Depende de lo que quieres hacer, lo que mencionas que hqace el trigger es lo que que esta definido, que quieres hqacer exactamente?
  #3 (permalink)  
Antiguo 03/06/2009, 09:50
 
Fecha de Ingreso: marzo-2006
Mensajes: 124
Antigüedad: 18 años, 1 mes
Puntos: 1
Respuesta: Ayuda Con trigger

Cuando se agregue un registro en la Tabla de Registros
ese mismo registro que se agregue en la Tabla de Control

y lo que me esta haciendo ese trigger si se agrega un registro en la tabla de registros
el trigger agrega un registro en la tabla de control pero toma el 1er registro de la tabla
de registros.

me explique???=D
  #4 (permalink)  
Antiguo 03/06/2009, 09:59
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: Ayuda Con trigger

entonces cambia la consulta esta
SELECT @Clave=Folio, @Fecha=Fecha
FROM Registros

por esta

SELECT TOP 1 @Clave=Folio, @Fecha=Fecha
FROM Inserted ORDER BY Fecha Desc

ademas el valor que debes tomar seria del inserted
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #5 (permalink)  
Antiguo 03/06/2009, 10:03
 
Fecha de Ingreso: marzo-2006
Mensajes: 124
Antigüedad: 18 años, 1 mes
Puntos: 1
Respuesta: Ayuda Con trigger

excelente, muchas gracias
Ya me funciono

Saludos
  #6 (permalink)  
Antiguo 03/06/2009, 10:12
 
Fecha de Ingreso: noviembre-2006
Ubicación: México
Mensajes: 866
Antigüedad: 17 años, 5 meses
Puntos: 8
Respuesta: Ayuda Con trigger

Aunque deberías quitarle la parte del TOP 1 y el order by , porque si haces un insert masivo a la tabla de "Registros" se te pueden perder algunos. Entonces deberías de tener algo así como:

Código:
INSERT INTO Control (Clave, Fecha)
SELECT  Folio, Fecha
FROM Inserted
Saludos.
  #7 (permalink)  
Antiguo 03/06/2009, 10:49
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: Ayuda Con trigger

bueno como tu dices si es un registro masivo se debe hacer de esa manera
Gracias por la aclaracion
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
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




La zona horaria es GMT -6. Ahora son las 19:30.