recorrido de inserted o deleted

21/07/2008 - 17:09 por Guillermo Villanueva | Informe spam
Buenos días, me podrían dar ejemplos de triggers multirow que recorran una
por una las filas de inserted o deleted.
Necesito recorrer una por una ya que estoy generando un script de
actualización para otras bases de datos, algo similar a una replicación
casera.
Hasta ahora iba todo bien, pero me había olvidado de considerar que los
triggers pueden dispararse una sola vez por una sentencia que afecta a mas
de una fila.

Gracias de antemano

Guillermo

Preguntas similare

Leer las respuestas

#6 Guillermo
21/07/2008 - 20:07 | Informe spam
Puedo publicar mi trigger aquí para ver si me pueden ayudar con múltiples
filas?, de paso les puede servir de ejemplo.



"Maxi" escribió en el mensaje
news:
Hola, evita el uso de cursores, usa algo asi como


insert into tabla (campos)
select campos from inserted


Salu2

Microsoft MVP SQL Server
Culminis Speaker
www.sqltotalconsulting.com

"Guillermo" escribió en el mensaje
news:
Ufff es largo de contar pero resumiendo: con replicación nativa no
solucionamos porque, casi todo es MSDE, no hay posibilidades de que
compren SQL Server. Merge incorpora columnas adicionales lo cual no es
aceptable en este caso.
Entonces por cada transacción quiero generar los:
INSERT
DELETE
UPDATE
necesarios.
El trigger para los inserts ya los tenía listo, pero solo consideraba los
casos de una tabla inserted de una sola fila, en casos de múltiples
filas, no funciona, y justamente quería evitar el uso de cursores.
No puedo agrupar porque necesito cada sentencia por separado :S

"Maxi" escribió en el mensaje
news:
Hola, el recorrido de filas una a una en sql se hace usando cursores
DECLARE CURSOR

Ahora bien, esta tecnica es lenta, yo trataria de trabajar las cosas en
conjuntos y evitar los cursores.

Recuerda que estas dentro de una tramsaccion en el trigger y no deberias
hacer que dure mucho para evitar bloqueos innecesarios.

Porque mejor no nos cuentas que quieres resolver, porque por lo que
quieres hacer la replicacion nativa de sql te deberia funcionar 10pts


Salu2

Microsoft MVP SQL Server
Culminis Speaker
www.sqltotalconsulting.com

"Guillermo Villanueva" escribió en
el mensaje news:
Buenos días, me podrían dar ejemplos de triggers multirow que recorran
una por una las filas de inserted o deleted.
Necesito recorrer una por una ya que estoy generando un script de
actualización para otras bases de datos, algo similar a una replicación
casera.
Hasta ahora iba todo bien, pero me había olvidado de considerar que los
triggers pueden dispararse una sola vez por una sentencia que afecta a
mas de una fila.

Gracias de antemano

Guillermo













Respuesta Responder a este mensaje
#7 Maxi
21/07/2008 - 20:14 | Informe spam
Claro!


Salu2

Microsoft MVP SQL Server
Culminis Speaker
www.sqltotalconsulting.com

"Guillermo" escribió en el mensaje
news:
Puedo publicar mi trigger aquí para ver si me pueden ayudar con múltiples
filas?, de paso les puede servir de ejemplo.



"Maxi" escribió en el mensaje
news:
Hola, evita el uso de cursores, usa algo asi como


insert into tabla (campos)
select campos from inserted


Salu2

Microsoft MVP SQL Server
Culminis Speaker
www.sqltotalconsulting.com

"Guillermo" escribió en el mensaje
news:
Ufff es largo de contar pero resumiendo: con replicación nativa no
solucionamos porque, casi todo es MSDE, no hay posibilidades de que
compren SQL Server. Merge incorpora columnas adicionales lo cual no es
aceptable en este caso.
Entonces por cada transacción quiero generar los:
INSERT
DELETE
UPDATE
necesarios.
El trigger para los inserts ya los tenía listo, pero solo consideraba
los casos de una tabla inserted de una sola fila, en casos de múltiples
filas, no funciona, y justamente quería evitar el uso de cursores.
No puedo agrupar porque necesito cada sentencia por separado :S

"Maxi" escribió en el mensaje
news:
Hola, el recorrido de filas una a una en sql se hace usando cursores
DECLARE CURSOR

Ahora bien, esta tecnica es lenta, yo trataria de trabajar las cosas en
conjuntos y evitar los cursores.

Recuerda que estas dentro de una tramsaccion en el trigger y no
deberias hacer que dure mucho para evitar bloqueos innecesarios.

Porque mejor no nos cuentas que quieres resolver, porque por lo que
quieres hacer la replicacion nativa de sql te deberia funcionar 10pts


Salu2

Microsoft MVP SQL Server
Culminis Speaker
www.sqltotalconsulting.com

"Guillermo Villanueva" escribió en
el mensaje news:
Buenos días, me podrían dar ejemplos de triggers multirow que recorran
una por una las filas de inserted o deleted.
Necesito recorrer una por una ya que estoy generando un script de
actualización para otras bases de datos, algo similar a una
replicación casera.
Hasta ahora iba todo bien, pero me había olvidado de considerar que
los triggers pueden dispararse una sola vez por una sentencia que
afecta a mas de una fila.

Gracias de antemano

Guillermo

















Respuesta Responder a este mensaje
#8 Guillermo
22/07/2008 - 17:00 | Informe spam
Maxi, ya publiqué mi trigger (solo lo tengo hecho para inserts), podrías
comentarlo por favor, seguro que tienes mejores ideas para hacer mi
replicación "casera".

"Maxi" escribió en el mensaje
news:
Claro!


Salu2

Microsoft MVP SQL Server
Culminis Speaker
www.sqltotalconsulting.com

"Guillermo" escribió en el mensaje
news:
Puedo publicar mi trigger aquí para ver si me pueden ayudar con múltiples
filas?, de paso les puede servir de ejemplo.



"Maxi" escribió en el mensaje
news:
Hola, evita el uso de cursores, usa algo asi como


insert into tabla (campos)
select campos from inserted


Salu2

Microsoft MVP SQL Server
Culminis Speaker
www.sqltotalconsulting.com

"Guillermo" escribió en el mensaje
news:
Ufff es largo de contar pero resumiendo: con replicación nativa no
solucionamos porque, casi todo es MSDE, no hay posibilidades de que
compren SQL Server. Merge incorpora columnas adicionales lo cual no es
aceptable en este caso.
Entonces por cada transacción quiero generar los:
INSERT
DELETE
UPDATE
necesarios.
El trigger para los inserts ya los tenía listo, pero solo consideraba
los casos de una tabla inserted de una sola fila, en casos de múltiples
filas, no funciona, y justamente quería evitar el uso de cursores.
No puedo agrupar porque necesito cada sentencia por separado :S

"Maxi" escribió en el mensaje
news:
Hola, el recorrido de filas una a una en sql se hace usando cursores
DECLARE CURSOR

Ahora bien, esta tecnica es lenta, yo trataria de trabajar las cosas
en conjuntos y evitar los cursores.

Recuerda que estas dentro de una tramsaccion en el trigger y no
deberias hacer que dure mucho para evitar bloqueos innecesarios.

Porque mejor no nos cuentas que quieres resolver, porque por lo que
quieres hacer la replicacion nativa de sql te deberia funcionar 10pts


Salu2

Microsoft MVP SQL Server
Culminis Speaker
www.sqltotalconsulting.com

"Guillermo Villanueva" escribió
en el mensaje news:
Buenos días, me podrían dar ejemplos de triggers multirow que
recorran una por una las filas de inserted o deleted.
Necesito recorrer una por una ya que estoy generando un script de
actualización para otras bases de datos, algo similar a una
replicación casera.
Hasta ahora iba todo bien, pero me había olvidado de considerar que
los triggers pueden dispararse una sola vez por una sentencia que
afecta a mas de una fila.

Gracias de antemano

Guillermo





















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