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

Al hacer una transaccion se genera un tipo de registro

Estas en el tema de Al hacer una transaccion se genera un tipo de registro en el foro de SQL Server en Foros del Web. Hola colegas, veran estoy haciendo varios Insertes, delet y udpates que me llevan al menos 5 minutos, debido a la logica del proceso, los meti ...
  #1 (permalink)  
Antiguo 02/04/2009, 18:25
Avatar de Sergestux  
Fecha de Ingreso: agosto-2007
Ubicación: Tapachula
Mensajes: 1.218
Antigüedad: 16 años, 8 meses
Puntos: 20
Al hacer una transaccion se genera un tipo de registro

Hola colegas, veran estoy haciendo varios Insertes, delet y udpates que me llevan al menos 5 minutos, debido a la logica del proceso, los meti en una transaccion.

Ahora el problema surge que mientras estoy usando esas tablas, no puedo acceder a ellas (ni siquiera selects) en principio esta bien ya que mientras no se termine la transaccion pienso mandar un mensaje al usuario de que espere a que esta disponible la tabla.

Mi pregunta es si sql server genera algun tipo de log donde me indique que tablas estan bloqueadas por x transaccion? ya que si no es asi, lo mas seguro es que termine haciendo una tabla donde manualmente ponga un status y algun otro campo como Inicio de transaccion, fin de transaccion o algo por el estilo.

Gracias por tomarse el tiempo de leer mi duda
  #2 (permalink)  
Antiguo 02/04/2009, 18:26
Avatar de Sergestux  
Fecha de Ingreso: agosto-2007
Ubicación: Tapachula
Mensajes: 1.218
Antigüedad: 16 años, 8 meses
Puntos: 20
Respuesta: Al hacer una transaccion se genera un tipo de registro

Se me olvidaba decir que el servidor es SQL Server 2000
  #3 (permalink)  
Antiguo 02/04/2009, 19:10
Avatar de Sergestux  
Fecha de Ingreso: agosto-2007
Ubicación: Tapachula
Mensajes: 1.218
Antigüedad: 16 años, 8 meses
Puntos: 20
Respuesta: Al hacer una transaccion se genera un tipo de registro

Estuve revisando la documentacion sobre @@TRANCOUNT pero no logro parar esa transaccion desde otra sesion que no sea ahi mismo donde inicio la transaccion... alguna sugerencia?
Cita:
La instrucción BEGIN TRANSACTION incrementa @@TRANCOUNT en 1. ROLLBACK TRANSACTION reduce @@TRANCOUNT a 0, excepto si es ROLLBACK TRANSACTION nombrePuntoGuardado, que no afecta a @@TRANCOUNT. Cada instrucción COMMIT TRANSACTION o COMMIT WORK disminuye @@TRANCOUNT en uno.

Ejemplos
Este ejemplo utiliza @@TRANCOUNT para comprobar si hay transacciones abiertas que haya que confirmar.

BEGIN TRANSACTION

UPDATE authors SET au_lname = upper(au_lname)

WHERE au_lname = 'White'

IF @@ROWCOUNT = 2

COMMIT TRAN



IF @@TRANCOUNT > 0

BEGIN

PRINT 'A transaction needs to be rolled back'

ROLLBACK TRAN

END
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




La zona horaria es GMT -6. Ahora son las 10:57.