SQL - TRIGGER para actualizar otra columna

 
Vista:

TRIGGER para actualizar otra columna

Publicado por Hernan* (104 intervenciones) el 21/10/2005 20:58:47
Necesito hacer un trigger para cuando se inserta un registro se tome el valor de una columna y se inserte en otra.
Ejemplo:

ID
FechaCreacion
FechaModificacion

Cuando inserten ID y FechaCreacion se tome este ultimo valor y se inserte en FechaModificacion
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:TRIGGER para actualizar otra columna

Publicado por CarlosQuintanilla (7 intervenciones) el 22/10/2005 00:10:43
insert into a la tabla nueva donde queres los registros, y tenes que hacerlo en base a un select de los campos que queres insertar en la nueva tabla y la condicion del where tienen que estar basada en el inserted.
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:TRIGGER para actualizar otra columna

Publicado por Liliana (426 intervenciones) el 24/10/2005 15:25:13
Hola Hernán,
En este caso no sería necesario un TRIGGER, ya que estarías realizando DOS instrucciones por cada fila, el INSERT original y el UPDATE del trigger.
Te sugiero resolverlo en el INSERT:

INSERT tabla
SELECT ID = @ID, FechaCreación = @FechaCreación, FechaModificación = @FechaCreación
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:TRIGGER para actualizar otra columna

Publicado por Hernan* (104 intervenciones) el 25/10/2005 16:51:24
No me sirve, porque no puedo modificar el INSERT.
Necesito hacerlo por fuera con un TRIGGER.
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:TRIGGER para actualizar otra columna

Publicado por Isaías (5072 intervenciones) el 25/10/2005 17:55:43
Hernan

Si estas 100% seguro que solo sera UN INSERT, puede funcionar, de lo contrario, cuando hagas un INSERT MULTIPLE, no te dara el resultado que esperas.
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:TRIGGER para actualizar otra columna

Publicado por Liliana (426 intervenciones) el 25/10/2005 18:57:01
Hernán,

CREATE TRIGGER InsTabla ON Tabla FOR INSERT
AS
UPDATE Tabla
SET dato2 = inserted.dato1
FROM inserted
WHERE tabla.id = inserted.id
GO
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

No funciono

Publicado por Hernan* (104 intervenciones) el 26/10/2005 21:49:41
El trigger lo cree asi, pero cuando inserto no actualiza, la idea es que actualice la columna Fecha (smalldatetime) con la fecha en formato corto dd/mm/yyyy


CREATE TRIGGER crFecha25
ON TABLA25
FOR INSERT
AS
UPDATE TABLA25 SET Fecha =CONVERT(char(11),inserted.crdate,113)
FROM inserted WHERE TABLA.Id = inserted.id

¿En que fallo?
Gracias.
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:No funciono

Publicado por Isaías (5072 intervenciones) el 27/10/2005 00:06:44
La columna "Fecha", es un CHAR o VARCHAR???
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:No funciono

Publicado por Hernan* (104 intervenciones) el 28/10/2005 14:06:28
La columna Fecha es smalldatetime.
Necesito guardar en esta columna la misma fecha que esta en la columna crdate, solo que en esta debe ser del formato dd/MM/yyyy y en crdate es fecha en formato largo dd-MM-myyyy hh:mm:ss

Sino puedo resolverlo con un trigger, ¿Puedo poner un valor default para esa columna en base a la otra?¿Como?

Gracias.
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:No funciono

Publicado por Liliana (426 intervenciones) el 28/10/2005 15:52:56
Hola Hernán,
Perdón pero no estuve entrando estos días al foro.
No quisiera que pienses que estoy cuestionando tu aplicación, pero me llama la atención lo que intentás hacer, a lo mejor hay alguna otra manera de responder a tus necesidades, sin tener que duplicar información en la tabla.
Imaginando que una de las fechas, pueda variar en el transcurso del tiempo, y tuvieras que mantener en otra columna la fecha original, estaría bien. Pero no es necesario darle un formato diferente, de eso podés encargarte en el momento de mostrarla.
Cuando decís que no funciona, ¿a qué te referís?
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:No funciono

Publicado por Hernan* (104 intervenciones) el 28/10/2005 16:50:03
Necesito hacer una consulta para un informe agrupado por fecha, pero como la Fecha en la columna crdate esta en el formato dd-mm-yyyyy hh:mm:ss entonces al agrupar no lo hace por dia, sino por dia,hora,minuto y segundo, por lo tanto no me devuelve un registro por linea.
La opcion mas facil que se me ocurrio fue, crear una columna igual, con fecha en un formato donde no se guarde la hora y como no puedo modificar el insert, porque lo ejecuta un exe, solo puedo hacer un trigger.
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:No funciono

Publicado por Liliana (426 intervenciones) el 31/10/2005 16:22:41
Hernán,
Para eso podrías agrupar con el formato que necesitás:

GROUP BY convert(char(10, tufecha, 112)
Y no necesitarás duplicar información en la tabla.
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:No funciono

Publicado por Eunice (1 intervención) el 11/06/2021 01:03:47
Es tipo "DATE"
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