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