1

質問のタイトルは最善ではないかもしれませんが、他の .mod が問題のより正確な説明を見つけた場合は、それを編集してください。

トップ句に変数パラメータを持つ動的SQLクエリを作成する必要があります

SELECT top (value) field, field2 FROM table

前のクエリは、実際にはこのクエリのサブクエリです

SELECT @first = min(field2) FROM (SELECT top (value) field, field2 FROM table)

exec(@sql)これは、sql top が動的な値を取らないため、クエリを作成する必要があることを意味しますがexec(@sql)、私の知る限り、パラメーターを取得することはできません。同様のケースで値を取得するために使用することを読んだことがsp_executesqlありますが、トップ句の横に動的な値を使用してクエリを作成することはできません. 私に何ができる?

4

2 に答える 2

2

SQL Server 2005以降を使用している場合は、変数を使用して動的トップを実行できます。まだ2000を使用している場合は、変数でSETROWCOUNTを使用できます。

2005以降の構文

DECLARE @RowCount int -- =25 -- sql server 2008 allows to assign when declaring
SELECT @RowCount = 25 

SELECT TOP (@RowCount) * FROM table1

2000構文

DECLARE @RowCount int 
SELECT @RowCount = 25 

SET ROWCOUNT @RowCount
SELECT  * FROM table1

SET ROWCOUNT 0  -- make sure to set back to 0 otherwise 
                -- queries below will return 25 rows
于 2012-05-30T13:50:26.287 に答える
2
declare @top int = 10

select top (@top) field, field2 from table
于 2012-05-30T13:48:15.873 に答える