![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
![]() ![]() tengo un problema con las transacciones....Y es que tengo una tabla donde hago un insert y me gustaria bloquear esa tabla ( ya se que no es lo mas optimo) para que nadie mas pudiese insertar registros mientras lo hago yo. Lo estoy programando con ADO. Si me pudieseis ayudar con un ejemplo os lo agradeceria un monton ya que llevo varios días con este problema. Gracias. |
#2
|
||||
|
||||
Hola
Prueba a añadir TABLOCKX al final de la instrucción INSERT. NOTA : Tienes que tener una transacción abierta, y la tabla se mantendrá bloqueada hasta que finalize la transacción. En la ayuda de SQL Server encontrarás más información sobre este modificador. Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
#3
|
|||
|
|||
Hola de nuevo:
Estoy hecha un lio.El código que yo escribo es : begintrans bucle for insert commintrans Pero mientras ejecuto esto, desde otro sitio ejecuto otros inserts, se mezclan en vez de bloquearse. Si me pudieses ayudar te lo agradecería mucho. Gracias. |
#4
|
||||
|
||||
¿ Has consultado ese modificador en la ayuda de SQL Server ?
Como veras en los ejemplos que da, si lanzas la siguiente consulta : SELECT COUNT(*) FROM Tabla WITH (TABLOCK, HOLDLOCK) Vas a bloquear la tabla hasta que finalize la transacción. Por lo que tienes que ejecutar esta consulta después del BeginTrans y antes del primer Insert. Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
![]() |
|
|
![]() |
|