2

以下がうまくいかないのはなぜですか?

CREATE FUNCTION Test (@top integer)
RETURNS TABLE
AS
RETURN
SELECT TOP @top * FROM SomeTable
GO

返される結果の数を指定できるようにしたいだけです。[SQL Server 2000]

ありがとう!

4

5 に答える 5

5

MS SQL 2000 の場合、以下を使用できます。

CREATE FUNCTION Test (@top integer)

RETURNS TABLE

AS

SET ROWCOUNT @top

RETURN SELECT * FROM SomeTable
于 2008-11-12T16:44:13.127 に答える
2

これのサポートは SQL Server 2005 に追加されましたが、2000 では利用できません。代わりに (身震いする) 動的 SQL またはその他の数値トリックを使用する必要があります。

于 2008-11-12T16:25:00.153 に答える
1

CREATE FUNCTION テスト (@top integer)

返品表

なので

戻る

SELECT TOP (@top) * FROM SomeTable

行く

ただし、ORDER BY 句がないとあまり意味がありません (結果の順序は保証されません)。

于 2008-11-12T16:28:55.653 に答える
0

おっと、変数 TOP は SQL Server 2000 では使用できません。動的 SQL はどのバージョンでもサポートされていません。

于 2008-11-12T16:31:38.550 に答える
0

ジェイク、行数を関数パラメーターに設定してから、選択を行ってみてください。私はこれを試していません、YMMV.

出典: http://msdn.microsoft.com/en-us/library/aa259189(SQL.80).aspx

構文

SET ROWCOUNT { number | @number_var }
Arguments

number | @number_var

指定されたクエリを停止する前に処理される行数 (整数) です。

于 2008-11-12T16:45:24.700 に答える