以下がうまくいかないのはなぜですか?
CREATE FUNCTION Test (@top integer)
RETURNS TABLE
AS
RETURN
SELECT TOP @top * FROM SomeTable
GO
返される結果の数を指定できるようにしたいだけです。[SQL Server 2000]
ありがとう!
以下がうまくいかないのはなぜですか?
CREATE FUNCTION Test (@top integer)
RETURNS TABLE
AS
RETURN
SELECT TOP @top * FROM SomeTable
GO
返される結果の数を指定できるようにしたいだけです。[SQL Server 2000]
ありがとう!
MS SQL 2000 の場合、以下を使用できます。
CREATE FUNCTION Test (@top integer)
RETURNS TABLE
AS
SET ROWCOUNT @top
RETURN SELECT * FROM SomeTable
これのサポートは SQL Server 2005 に追加されましたが、2000 では利用できません。代わりに (身震いする) 動的 SQL またはその他の数値トリックを使用する必要があります。
CREATE FUNCTION テスト (@top integer)
返品表
なので
戻る
SELECT TOP (@top) * FROM SomeTable
行く
ただし、ORDER BY 句がないとあまり意味がありません (結果の順序は保証されません)。
おっと、変数 TOP は SQL Server 2000 では使用できません。動的 SQL はどのバージョンでもサポートされていません。
ジェイク、行数を関数パラメーターに設定してから、選択を行ってみてください。私はこれを試していません、YMMV.
出典: http://msdn.microsoft.com/en-us/library/aa259189(SQL.80).aspx
構文
SET ROWCOUNT { number | @number_var }
Arguments
number | @number_var
指定されたクエリを停止する前に処理される行数 (整数) です。