Ayuda con trigger

14/04/2004 - 12:04 por Miguel Tubia | Informe spam
Hola a todos,
si yo hago un trigger que salte cuando se introduzca una fila, ¿cómo puedo
coger los datos de la fila que estoy introduciendo ahora?
Muchas gracias
Un saludo

Preguntas similare

Leer las respuestas

#11 Miguel Tubia
15/04/2004 - 12:44 | Informe spam
Hola,
entonces, estaria bien esta forma de hacer el trigger?:

CREATE TRIGGER [TR_Mensajes] ON [dbo].[mensajes]
FOR INSERT
AS

declare @asunto varchar(1), @trama varchar(280)

select @asunto=i.asunto, @trama=i.texto from mensajes m inner join inserted
i on m.id_mensaje=i.id_mensaje

Tratamiento del trigger

¿Estaría bien así? La fila q se inserta va sin id, este es un autonumerico.
Supongo q al ser for after insert, como ya se ha introducida la fila, el id
se ha generado y tb estara en la tabla inserted. Lo hice así siguiendo el
ejemplo de miguel del artículo.
¿Alguna consideración o consejo para terminar? Lo probé y parece q va bien,
pero me preocupa q pete por algun lado, pues claro, metiendo 4 ó 5 filas una
a una o así
Muchas gracias por todo
Un saludo
Respuesta Responder a este mensaje
#12 Marcelo W. Lopez Cremona
15/04/2004 - 13:27 | Informe spam
Muchas gracias.

;-)

Marcelo López
Tucumán - Argentina

"Miguel Egea" escribió en el mensaje
news:OQe#



http://www.configuracionesintegrale...p?articulo0
ahí cuento lo que te decía


Saludos

Miguel Egea
Microsoft SQL-SERVER MVP
Brigada Anti-Cursores
http://www.portalsql.com

(Quita el online si me tienes que mandar un correo)
"Marcelo W. Lopez Cremona" escribió en el


mensaje
news:
> Para poder hacer un correcto uso de inserted y deleted que es lo que me
> aconsejas???
>
> Desde ya Muchas Gracias. Saluditos ;-)
>
> Marcelo W. López
> Tucumán - Argentina
>
>
> "Miguel Egea" escribió en el mensaje
> news:
> > Ojo con el tratamiento que haces, en inserted no hay una sola fila,


sino
> que
> > están todas las insertadas o modificadas!!! y hay que hacer el
tratamiento
> > adecuado, es decir no vale con recoger los valores en variables...
> >
> >
> > Saludos
> >
> > Miguel Egea
> > Microsoft SQL-SERVER MVP
> > Brigada Anti-Cursores
> > http://www.portalsql.com
> >
> > (Quita el online si me tienes que mandar un correo)
> > "Miguel Tubia" <####m_tubiaARROBAhotmail.com###> escribió en el


mensaje
> > news:#
> > > Hola a todos,
> > > si yo hago un trigger que salte cuando se introduzca una fila, ¿cómo
> puedo
> > > coger los datos de la fila que estoy introduciendo ahora?
> > > Muchas gracias
> > > Un saludo
> > >
> > >
> >
> >
>
>


Respuesta Responder a este mensaje
#13 Miguel Egea
15/04/2004 - 15:34 | Informe spam
no, lo siento no es así, ¿que vas a hacer con las variables @asunto y
@trama?


Saludos

Miguel Egea
Microsoft SQL-SERVER MVP
Brigada Anti-Cursores
http://www.portalsql.com

(Quita el online si me tienes que mandar un correo)
"Miguel Tubia" <####m_tubiaARROBAhotmail.com###> escribió en el mensaje
news:#$#
Hola,
entonces, estaria bien esta forma de hacer el trigger?:

CREATE TRIGGER [TR_Mensajes] ON [dbo].[mensajes]
FOR INSERT
AS

declare @asunto varchar(1), @trama varchar(280)

select @asunto=i.asunto, @trama=i.texto from mensajes m inner join


inserted
i on m.id_mensaje=i.id_mensaje

Tratamiento del trigger

¿Estaría bien así? La fila q se inserta va sin id, este es un


autonumerico.
Supongo q al ser for after insert, como ya se ha introducida la fila, el


id
se ha generado y tb estara en la tabla inserted. Lo hice así siguiendo el
ejemplo de miguel del artículo.
¿Alguna consideración o consejo para terminar? Lo probé y parece q va


bien,
pero me preocupa q pete por algun lado, pues claro, metiendo 4 ó 5 filas


una
a una o así
Muchas gracias por todo
Un saludo


Respuesta Responder a este mensaje
#14 Miguel Tubia
15/04/2004 - 15:50 | Informe spam
Hola,
vaya por dios... con esas variables luego, más adelante en el trigger (no lo
puse entero pq es largo) las examino y según lo que tengan modifico unas
cosas en otras tablas.
El @asunto es un caracter que, si es 'm', y los dos primeros caracteres de
@trama son 'tw', tengo q modificar unos campos de una tabla según el resto
del contenido de @trama.
No puse el resto del cuerpo pq es largo y quizás liaba más q otra cosa.
¿Cómo sería entonces? ¿Algún ejemplo?
Muchas gracias
Un saludo
Respuesta Responder a este mensaje
#15 Miguel Egea
15/04/2004 - 16:16 | Informe spam
Cuando tu hace selet @aunto=xx from inserted solo tomas el primero de los
registros de inserted, y pon en cuarentena lo de primero, tomas uno.

tend´ras qu cambiarlo con un case

update t set campo=case when asunto='X' then UNCAMPO else OTROCAMPO end, ...
from inserted i inner join XX

algo así sería


Saludos

Miguel Egea
Microsoft SQL-SERVER MVP
Brigada Anti-Cursores
http://www.portalsql.com

(Quita el online si me tienes que mandar un correo)

"Miguel Tubia" escribió en el mensaje
news:
Hola,
vaya por dios... con esas variables luego, más adelante en el trigger (no


lo
puse entero pq es largo) las examino y según lo que tengan modifico unas
cosas en otras tablas.
El @asunto es un caracter que, si es 'm', y los dos primeros caracteres de
@trama son 'tw', tengo q modificar unos campos de una tabla según el resto
del contenido de @trama.
No puse el resto del cuerpo pq es largo y quizás liaba más q otra cosa.
¿Cómo sería entonces? ¿Algún ejemplo?
Muchas gracias
Un saludo


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