2008-11-12 89 views

回答

5

對於MS SQL 2000,你可以使用:

CREATE FUNCTION Test (@top integer) 

RETURNS TABLE 

AS 

SET ROWCOUNT @top 

RETURN SELECT * FROM SomeTable 
2

對此的支持已添加到SQL Server 2005中,但它在2000年不可用。您必須使用(顫抖)動態sql或其他數字技巧來代替。

+0

......這很荒謬。 ;) – Jake 2008-11-12 16:27:45

1

CREATE函數test(@top整數)

RETURNS TABLE

AS

RETURN

SELECT TOP(@top)* FROM SomeTable

GO

但是,如果沒有ORDER BY子句,它不是很適合可愛(結果的順序不能保證)。

0

Oops變量TOP在SQL Server 2000中不可用。動態SQL也不支持任何版本。

0

傑克,試試行數設置爲你的函數的參數,然後做你的選擇。 YMMV,我沒有嘗試過。

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

語法

SET ROWCOUNT { number | @number_var } 
Arguments 

number | @number_var 

是停止所述給定查詢之前處理的行數(整數)。

+0

您不能在用戶定義的函數中使用set rowcount – Seibar 2008-12-08 17:35:07