Forums Últimos mensajes - Powered by IBM
 

Bloqueos en SqlServer 2005

27/09/2007 - 08:34 por Paul | Informe spam
Hola,
He leódo lla ayuda sobre bloqueos, lo de ISOLATION LEVEl, y todo eso
pero no acanbo de entenderlo, he hecho varias pruebas y no acabo de
verlo claro.

Tengo una aplicación y me gustario que cuando un usuario lee rgistros
de una tabla, ningun otro usuario pueda manipular esta tabla, es decir
que pueda hacer select, pero no insert, ni update ni delete. Y ademas
que detectara que no puede realizar estas operaciones antes de
hacerlas, no se si hay alguna operación para decir hay bloqueo, o algo
así


Muchas gracias
 

Leer las respuestas

#1 Gustavo Larriera (MVP)
27/09/2007 - 16:14 | Informe spam
Lea en los Books Online acerca del uso de "hints" (trad. "Sugerencias de
tabla").

El ejemplo siguiente especifica que se aplique un bloqueo compartido a la
tabla Production.Product y que se mantenga hasta que finalice la instrucción
UPDATE. Observe el uso del hint TABLOCK:

UPDATE Production.Product
WITH (TABLOCK)
SET ListPrice = ListPrice * 1.10
WHERE ProductNumber LIKE 'BK-%'

Si me permite una opinión personal, lo que usted quiere hacer (bloquear
totalmente una tabla mientras un usuario lee datos) es una mala idea porque
produce mucho bloqueo, disminuyendo el acceso concurrente de los usuarios.

Además este tipo de comportamiento lo hace automáticamente el motor de base
de datos que no permite el acceso a un dato que está siendo modificado por
otro usuario.

Gustavo Larriera, Microsoft MVP
https://mvp.support.microsoft.com/p...o.Larriera
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"Paul" wrote:

Hola,
He leódo lla ayuda sobre bloqueos, lo de ISOLATION LEVEl, y todo eso
pero no acanbo de entenderlo, he hecho varias pruebas y no acabo de
verlo claro.

Tengo una aplicación y me gustario que cuando un usuario lee rgistros
de una tabla, ningun otro usuario pueda manipular esta tabla, es decir
que pueda hacer select, pero no insert, ni update ni delete. Y ademas
que detectara que no puede realizar estas operaciones antes de
hacerlas, no se si hay alguna operación para decir hay bloqueo, o algo
así


Muchas gracias


Preguntas similares