Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

bucle trigger colgado sql server 200 bloqueo tablas

Estas en el tema de bucle trigger colgado sql server 200 bloqueo tablas en el foro de SQL Server en Foros del Web. Hola, Tengo un problemón bastante gordo, estoy haciendo pruebas con triggers, he metido un while dentro de uno de ellos pero entra en un bucle ...
  #1 (permalink)  
Antiguo 26/04/2010, 03:12
 
Fecha de Ingreso: octubre-2007
Mensajes: 25
Antigüedad: 16 años, 5 meses
Puntos: 1
bucle trigger colgado sql server 200 bloqueo tablas

Hola,

Tengo un problemón bastante gordo, estoy haciendo pruebas con triggers, he metido un while dentro de uno de ellos pero entra en un bucle "eterno" por un fallo mío.
Ahora no puedo acceder a la tabla para modificar los registros a mano y forzar que salga del bucle, ni me muestra los registros ni puedo modificar el propio trigger. Todo se me queda colgado!!

Por favor...¿cómo puedo detener la ejecución de el trigger que está en marcha, la que está colgada? Estoy deseperada!!

Gracias!!
  #2 (permalink)  
Antiguo 26/04/2010, 04:24
Avatar de Valery-Net  
Fecha de Ingreso: agosto-2008
Mensajes: 694
Antigüedad: 15 años, 7 meses
Puntos: 12
Respuesta: bucle trigger colgado sql server 200 bloqueo tablas

Me parece que tendrías que detener el servicio de sql server o poner la base de datos offline
  #3 (permalink)  
Antiguo 26/04/2010, 08:14
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 8 meses
Puntos: 180
Respuesta: bucle trigger colgado sql server 200 bloqueo tablas

No, solo debes detener el servicio MSDTC, que controla el flujo de las transacciones.
  #4 (permalink)  
Antiguo 26/04/2010, 11:06
Avatar de Beakdan  
Fecha de Ingreso: diciembre-2001
Ubicación: Monterrey, Nuevo León
Mensajes: 433
Antigüedad: 22 años, 3 meses
Puntos: 7
Respuesta: bucle trigger colgado sql server 200 bloqueo tablas

El MSDTC sólo controla las transacciones distribuidas. Podrías tenerlo apagado sin problema alguno mientras no ejecutes "BEGIN DISTRIBUTED TRANSACTION" o alguna transacción a un linked server.

FIEBRE: Espero que ya lo hayas solucionado. La solución de reiniciar el servicio de SQL funciona efectivamente pero es demasiado agresiva. La otra es simplemente obtener el spid del proceso que se quedó colgado con sp_who y terminarlo con KILL.

Considera que un trigger se ejecuta en el contexto de una transacción. Por lo tanto debe cumplir la regla fundamental de las transacciones: Ser lo más breve posible. Obviamente un bucle es una mala idea, y cualquier otra operación que cause un retraso artificial al flujo natural de la transacción también lo es.
  #5 (permalink)  
Antiguo 28/04/2010, 00:55
 
Fecha de Ingreso: octubre-2007
Mensajes: 25
Antigüedad: 16 años, 5 meses
Puntos: 1
Respuesta: bucle trigger colgado sql server 200 bloqueo tablas

Hola,

Muchísimas gracias a todos por las respuestas.
Al final lo conseguí!! No pude esperar porque tenía bloqueda una tabla muy importante y fallaban hasta las cosas de los clientes... menuda cagadita!

La solución fué parar el SQL y volver a arrancarlo, busqué en la tabla sysprocess el uid del proceso del trigger pero fuí incapaz de saber qué proceso era, no sé si al ser un trigger y no un procedure no aparece en esta tabla aunque esté en ejecución. Como veis, no tengo muchos conocimientos del SQL. No pude usar el KILL.
La solución fué un poco agresiva pero funcionó.

Desde luego que la idea del bucle dentro del trigger no fue buena en absoluto, ya lo he modificado y en adelante os asegurpo que pondré más cuidado... vaya susto!

Mil gracias por vuestra ayuda!!

Etiquetas: bloqueo, bucle, server, sql, tablas, trigger
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 23:50.