Ver Mensaje Individual
  #11 (permalink)  
Antiguo 24/07/2012, 13:33
Avatar de Libras
Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Obener Id del row actualizado con un update anidado

el bloqueo no lo hace con un select....el bloqueo se hace con el update, si haces esto:

Código SQL:
Ver original
  1. CREATE TABLE TestDeadLock(
  2. id INT,
  3. name VARCHAR(20)
  4. )
  5.  
  6. INSERT INTO TestDeadLock VALUES (1,'Madhu')
  7. INSERT INTO TestDeadLock VALUES (2,'Madhu')
  8. INSERT INTO TestDeadLock VALUES (3,'Madhu')
  9.  
  10. SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
  11. BEGIN tran
  12. UPDATE TestDeadLock
  13. SET name='Libras'
  14. WHERE id=3

Luego abres otra sesion de sql manager o ejecutas este query en otra ventana veras el bloqueo

select * from dbo.TestDeadLock

ya que este select no regresa valores hasta que des el commit tran en el ejemplo anterior, un bloqueo no se hace por un select se hace por un update, insert o delete :)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me