說內就選擇一些澄清,如果我有下面的T-SQL語句(設計,SQL Server 2008上運行):需要更新T-SQL語句
UPDATE tbl
SET col1 = (
SELECT MAX(col1) FROM tbl AS t1 WHERE t1.type = tbl.type
);
爲什麼說在這種情況下,選擇工作:
它選擇考慮到每個更新的結果,或
它從TBL選擇,因爲它是更新前開始更新記錄。
有人可以爲我澄清這一點嗎?
說內就選擇一些澄清,如果我有下面的T-SQL語句(設計,SQL Server 2008上運行):需要更新T-SQL語句
UPDATE tbl
SET col1 = (
SELECT MAX(col1) FROM tbl AS t1 WHERE t1.type = tbl.type
);
爲什麼說在這種情況下,選擇工作:
它選擇考慮到每個更新的結果,或
它從TBL選擇,因爲它是更新前開始更新記錄。
有人可以爲我澄清這一點嗎?
2!您的子查詢SELECT會在UPDATE進行任何更改之前確定該值。
我在一個實例中測試了它。而且......你說得對。謝謝。 – ahmd0 2012-07-20 20:24:09