2012-07-20 6 views
5

znaczy, jeśli mam następujące oświadczenie T-SQL (zaprojektowany do pracy w SQL Server 2008):Potrzebujesz wyjaśnień na wybranych ciągu UPDATE oświadczenie T-SQL

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

Jak dokładnie SELECT praca w tym przypadku :

  1. wybiera biorąc pod uwagę wyniki każdej aktualizacji lub

  2. wybiera się z tbl jak to było przed aktualizacją rozpoczął aktualizację rekordów.

Czy ktoś może mi to wyjaśnić?

Odpowiedz

4

2! Wybranie SELECT powoduje pobranie wartości określonej przed AKTUALIZACJĄ.

+0

Przetestowałem to na żywym przykładzie. I ... masz rację. Dzięki. – ahmd0

-2

Jest 1

1. wybiera biorąc pod uwagę wyniki każdej aktualizacji lub

+0

Dziękujemy za szybką odpowiedź. – ahmd0

+0

Trzymaj się ... to jest 1 lub 2 :) Czy ktoś ma jakiekolwiek odniesienia do dokumentów na ten temat? – ahmd0

+0

Wypróbuj i zobacz, @ ahmd0. Dokumenty nie są potrzebne. – ErikE