SQL の TOP (上位何件を取得) には括弧が必要だった
SQL の TOP*1 ですが、今まで文法を誤解していました。実は、 expression に括弧が必要だったのですね。
SELECT TOP (10) * FROM CUSTOMER
今まで括弧をつけずに書いていたのですが、 TOP (Transact-SQL) によると過去との互換性で残されているそうです。
旧バージョンとの互換性のため、SELECT ステートメントで TOP を使用する場合は expression をかっこで囲まなくても処理が行われますが、これは推奨されません。
SqlParameter で TOP を使おうと思ったとき、括弧でくくらないとパラメータを受け付けてくれなかったので変だと思っていたのですが、やっとすっきりしました。
*1:SQL Server の TOP 句は、上位 n 件を取得するときなど便利に利用できるので、そこそこの使用頻度があります。