Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition) opera en un nivel de aislamiento de lectura confirmada (Read Committed) de manera predeterminada. No obstante, una aplicación podría necesitar funcionar con un nivel de aislamiento diferente. Para implementar distintos niveles de aislamiento en las aplicaciones, puede personalizar el bloqueo para toda una sesión estableciendo el nivel de aislamiento de la sesión con la instrucción SET TRANSACTION ISOLATION LEVEL.
Importante: |
|---|
| Aunque el nivel de aislamiento predeterminado de SQL Server Compact Edition es de lectura confirmada (Read Committed), usando este nivel de aislamiento no se producen bloqueos S al leer los datos. Este comportamiento no es propio de Microsoft SQL Server. En SQL Server, cuando se utiliza Read Committed se solicita un bloqueo S siempre que se lee una fila, y éste esperará si existe un bloqueo en conflicto en esa fila. SQL Server Compact Edition no requiere un bloqueo S porque las versiones de las páginas de datos se mantienen automáticamente para garantizar que los datos confirmados pueden leerse sin necesidad de realizar un bloqueo. Esto es importante porque en SQL Server Compact Edition, las operaciones SELECT no necesitan llevar a cabo ningún bloqueo en los datos y casi siempre se realizan con éxito. Las operaciones SELECT no esperan si algunos datos tienen un bloqueo X, al contrario que en SQL Server. La operación SELECT aún requiere un bloqueo Sch-S. La operación sólo producirá un error si la tabla se está modificando, ya que existirá un bloqueo Sch-X que causa un conflicto. |
Cuando se especifica el nivel de aislamiento, el comportamiento de bloqueo de todas las instrucciones SELECT de la sesión de SQL Server Compact Edition funciona en ese nivel de aislamiento y permanece vigente hasta que termina la sesión o hasta que el nivel de aislamiento se establece en otro nivel. Por ejemplo, para establecer el nivel de aislamiento de transacciones a Serializable y para garantizar que ninguna transacción simultánea no inserta filas ficticias en la tabla Employee, utilice la siguiente instrucción SQL:
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
BEGIN TRANSACTION;
SELECT EmployeeID FROM Employee;
También puede establecer el nivel de aislamiento de transacciones mediante programación. A continuación, se ofrece un ejemplo de cómo establecer el nivel de aislamiento de transacciones mediante ADO .NET:
SqlTransaction myTrans;
myTrans = myConnection.BeginTransaction(IsolationLevel.RepeatableRead);
Vea también
Conceptos
Descripción de bloqueos
Mostrar la información de bloqueo
Sugerencias de bloqueo (SQL Server Compact Edition)
Tiempo de espera para bloqueo
Importante: