2012-07-20 8 views
5

Es decir, si tengo la siguiente instrucción T-SQL (diseñado para ejecutarse en SQL Server 2008):Necesidad algunas aclaraciones sobre SELECT dentro ACTUALIZACIÓN instrucción T-SQL

UPDATE tbl 
SET col1 = (
    SELECT MAX(col1) FROM tbl AS t1 WHERE t1.type = tbl.type 
); 

¿Cómo funciona exactamente la SELECT en este caso :

  1. selecciona teniendo en cuenta los resultados de cada actualización, o

  2. se selecciona de la TBL como lo era antes de la actualización comenzó a actualizar los registros.

¿Alguien me puede aclarar esto?

Respuesta

4

2! Su subconsulta SELECT extrae el valor como se determinó antes de que UPDATE realice algún cambio.

+0

Lo probé en un ejemplo en vivo. Y ... tienes razón. Gracias. – ahmd0

-2

Es 1

1. selecciona teniendo en cuenta los resultados de cada actualización, o

+0

Gracias por su rápida respuesta. – ahmd0

+0

Espera ... por lo que es 1 o 2 :) ¿Alguien tiene alguna referencia a los documentos sobre esto? – ahmd0

+0

Pruébalo y mira, @ ahmd0. No se necesitan documentos. – ErikE

Cuestiones relacionadas