FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
trigger a nivel de campo
Hola a todos
Alguien sabe si se puede hacer un trigger a nivel de campo? Es decir, si un campo determinado de una tabla se modifica, que salte el trigger asociado. Supongo que poniendo una condicion en el trigger se podria acotar la ejecucion pero no se si se puede hacer lo otro comentado. Gracias a todos |
#2
|
||||
|
||||
Hola.
En efecto, se tiene que hacer mediante una condición en el trigger. if new.campo <> old.campo then .... Nota: debido a la forma especial en que operan los campos nulos, la condición realmente deberia ser : if new.campo <> old.campo or (new.campo is null and old.campo is not null) or (new.campo is not null and old.campo is null) then .... Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
#3
|
|||
|
|||
si lo que busco es actualizar un campo despues de una insercion como seria la sintaxis
CREATE trigger NombreCompleto for Solicitud active after insert,update position 0 AS begin new.Nombre_Completo=(select paterno|| ' ' || materno || ' ' || nombre ) end algo asi... |
#4
|
||||
|
||||
Cita:
CREATE trigger NombreCompleto for Solicitud active after insert,update position 0 AS begin new.Nombre_Completo = new.paterno|| ' ' || new.materno || ' ' || new.nombre end Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
#5
|
|||
|
|||
pero me marca este error....
ISC ERROR CODE:335544569 ISC ERROR MESSAGE: Dynamic SQL Error SQL error code=-104 Token unknown -line 18, char 1 end SET TERM ^^ ; CREATE TRIGGER AAAAAA_A_EJEMPLO FOR AAAAAA_A ACTIVE AFTER INSERT OR UPDATE POSITION 0 AS begin new.NOMBRECOMPLETO= new.APA1|| ' ' ||new.APE2|| ' ' ||new.NOMBRE end ^^ |
#6
|
|||
|
|||
Hola
Te falta el ; al final de la linea de la asignación del campo Panta |
#7
|
||||
|
||||
Además de añadir el punto y coma que indica celades1, yo tendría en cuenta el hecho de que a veces alguna de las partes del nombre puede ser nula, lo que provocaría que todo el nombre completo sea nulo (cualquier valor operado con nulo da como resultado otro nulo).
Para solventarlo se puede usar la función coalesce. CREATE trigger NombreCompleto for Solicitud active after insert,update position 0 AS begin new.Nombre_Completo = coalesce(new.paterno || ' ', '') || coalesce(new.materno || ' ', '') || coalesce(new.nombre, ''); end Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
#8
|
|||
|
|||
Cita:
No he logrado crear el trigger marca el siguiente error, pense que podria ser por palabre new asi que la cambie a old pero arroja el mismo error Última edición por amerika111 fecha: 29-07-2011 a las 01:07:25. |
#9
|
|||
|
|||
No me deja crear el trigger en tiempo after solo before... a que se debera, en after me arroja el error de la parte de arriba
|
#10
|
||||
|
||||
Hola.
Pareciera que tu código dice: Digo pareciera por que no puedo apreciar bién la imágen que has puesto, si es exáctamente asi, es un problema de sintáxis. Debería haber un espacio antes de ACTIVE:
Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#11
|
|||
|
|||
Hola
Es correcto, para asignar valores solo se puede hacer en triggers before ya sea BI o BU Lo cual me parece logico Saludos |
#12
|
|||
|
|||
tengo una duda en este tipo de trigger por que podria estar marcando error
lo he cambiado a after before y nada de nada
Última edición por Casimiro Notevi fecha: 23-06-2011 a las 01:04:02. |
#13
|
||||
|
||||
No olvides las etiquetas para el código fuente.
. |
#14
|
||||
|
||||
¿ Que error marca ?, ¿ no te dice en que linea se encuentra ?.
Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
#15
|
||||
|
||||
Cita:
En principio tenes incompleta la declaración del condicional, lo correcto es:
Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#16
|
|||
|
|||
Cita:
|
#17
|
||||
|
||||
Hola amerika111.
Como bién ha dicho guillotmarc: Cita:
Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 23-06-2011 a las 17:17:15. |
#18
|
|||
|
|||
El error que marca es el siguiente...
Última edición por amerika111 fecha: 29-07-2011 a las 01:07:20. |
#19
|
||||
|
||||
Hola.
Probá de este modo:
Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#20
|
|||
|
|||
Perfecto si con esa sintaxis me deja guardarlo y funciona
Gracias.... |
|
|
|