Creando Trigger

15/11/2006 - 11:02 por Fadoyo | Informe spam
Hola a todos, ¿Como puedo hacer para que un trigger se dispare para cada
fila insertada en vez de al final de la insercion de multiples filas?

Gracias

Preguntas similare

Leer las respuestas

#6 BitOne®
15/11/2006 - 16:16 | Informe spam
Hola Fadoyo:

"A menudo se utilizan desencadenadores para exigir las reglas de empresa y
la integridad de los datos.
SQL Server proporciona integridad referencial declarativa (DRI, Declarative
Referential Integrity)
a través de las instrucciones de creación de tabla (ALTER TABLE y CREATE
TABLE); sin embargo,
DRI no proporciona integridad referencial entre bases de datos. Para exigir
la integridad referencial (reglas
acerca de la relación entre la clave principal y la clave externa de las
tablas), utilice las restricciones de
clave principal y externa (las palabras clave PRIMARY KEY y FOREIGN KEY de
ALTER TABLE y
CREATE TABLE). Si existen restricciones en la tabla de desencadenadores, se
comprueban después de
la ejecución del desencadenador INSTEAD OF y antes de la de AFTER. Si no se
respetan las restricciones,
las acciones del desencadenador INSTEAD OF se deshacen y no se ejecuta
(activa) el desencadenador AFTER "

BOL SQL 2000.

Sql server no envia mas 1 un registro a la tabla logica Inserted, pues
recuerda que cada update, delete o insert
que realizes disparara el desencadenador segun le hayas indicado.

ademas existen operaciones que se realizaran columna por columna esto es
debido a que al momento de tu realizar
algo como esto

Insert into tabla values ( xxx)

Si existe un desencadenador o (Trigger) que afecte el "insert" el trigger
tendrá un registro en la tabla lógica Inserted,
como los registros no son insertados en conjunto sino Uno a Uno el trigger
se disparara cada registro ingresado.

y asi sucesivamente pudieramos escribir todo un libro sobre los triggers
sobre las cosas que se pueden hacer y las
que no se deben hacer con ellos.


Saludos,

BitOne







"Fadoyo" wrote in message
news:#xCTB#
Hola, muy facil, mi trigger tiene que hacer lo siguiente:

Si se inserta en una tabla a, tiene que comprobar en b si existen filas
relacionadas, si no existen tiene que crear la relacion y sino tiene que
actualizarla.

Claro, si esto lo puedo hacer por filas es mucho mas facil que si puede
haber un conjunto.

O, Como podria recorrer cada fila del inserted para hacer esto?

GRacias

"Maxi" wrote in message
news:
> Hola, en sql server no funcionan asi, siempre se ejecutan por conjunto.
Que
> es lo que necesitas hacer que debes hacerlo cada uno y no por conjunto?
> jamas me ha tocado en 10 años usando sqlserver tener que hacer algo por


el
> estilo, si nos contas quizas podriamos darte otra alternativa
>
>
> Salu2
>
> Microsoft MVP SQL Server
> Culminis Speaker
> INETA Speaker
>
> "Fadoyo" escribió en el mensaje
> news:
> > Bueno, no funcionan asi en SQL Server?¿O estoy diciendo cosas raras?
> >
> > Saludos
> >
> > "Maxi" wrote in message
> > news:
> >> Hola, los trigger no funcionan asi siempre funcionan por el conjunto
haya
> > 1
> >> o n filas
> >>
> >>
> >> Salu2
> >>
> >> Microsoft MVP SQL Server
> >> Culminis Speaker
> >> INETA Speaker
> >>
> >> "Fadoyo" escribió en el mensaje
> >> news:%
> >> > Hola a todos, ¿Como puedo hacer para que un trigger se dispare para
> >> > cada
> >> > fila insertada en vez de al final de la insercion de multiples


filas?
> >> >
> >> > Gracias
> >> >
> >> >
> >>
> >>
> >
> >
>
>


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