UPDATE文でFROM句を指定できる
Sybase と Microsoft のT-SQLに含まれるUPDATE 文には、ユーザーに警告しておくべき重大な欠陥がある。「パワーユーザー」の中には、この欠陥のゆえにMERGE文を使うことを主張する人もいるぐらいだ。その欠陥とは、UPDATE 文でFROM句にテーブルを指定できる独自構文だ。 code:syntax.sql
-- Syntax for SQL Server and Azure SQL Database
[ WITH <common_table_expression> ...n ] UPDATE
{ { table_alias | <object> | rowset_function_limited
[ WITH ( <Table_Hint_Limited> ...n ) ] }
| @table_variable
}
SET
{ column_name = { expression | DEFAULT | NULL }
| { udt_column_name.{ { property_name = expression
| field_name = expression }
| method_name ( argument ,...n ) }
}
| column_name { .WRITE ( expression , @Offset , @Length ) }
| @variable = expression
| @variable = column = expression
| column_name { += | -= | *= | /= | %= | &= | ^= | |= } expression
| @variable { += | -= | *= | /= | %= | &= | ^= | |= } expression
| @variable = column { += | -= | *= | /= | %= | &= | ^= | |= } expression
[ FROM{ <table_source> } ,...n ] [ WHERE { <search_condition>
以下略...