Vs2008クエリビルダーを使用して、「TOP
」コマンドのパラメーターを取得するクエリを作成しようとすると、「上部の式にエラーがあります」というエラーが発生する
作品:
SELECT TOP 5 * FROM dbo.SomeTable
WHERE SomeColumn = SomeValue
動作しません:
SELECT TOP @param1 * FROM dbo.SomeTable
WHERE SomeColumn = SomeValue
代替テキストhttp://www.freeimagehosting.net/uploads/f9b9354577.jpg
括弧が必要、SQL Server 2005以降のみ
SELECT TOP (@param1) ...
SQL Serverの古いバージョンでは、次のものを使用できます。
SET ROWCOUNT @NumberOfResults
SELECT * FROM MyTable
SET ROWCOUNT 0
SET ROWCOUNTを使用しても、SQL Server(2008)の次のリリースでは、DELETE、INSERT、およびUPDATEステートメントには影響しません。新しい開発作業では、SET ROWCOUNTをDELETE、INSERT、およびUPDATEステートメントと共に使用しないでください。また、現在使用しているアプリケーションを変更することを計画してください。また、現在SET ROWCOUNTを使用しているDELETE、INSERT、およびUPDATEステートメントについては、TOP構文を使用するように書き直すことをお勧めします。詳細については、「DELETE(Transact-SQL)」、「INSERT(Transact-SQL)」、または「UPDATE(Transact-SQL)」を参照してください。