以下情況如何起作用?SQL用戶定義的函數:獲取用戶定義函數中的TOP n記錄
CREATE FUNCTION Test (@top integer)
RETURNS TABLE
AS
RETURN
SELECT TOP @top * FROM SomeTable
GO
我只是想能夠指定要返回結果的數量。 [SQL Server 2000.]
謝謝!
以下情況如何起作用?SQL用戶定義的函數:獲取用戶定義函數中的TOP n記錄
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函數test(@top整數)
RETURNS TABLE
AS
RETURN
SELECT TOP(@top)* FROM SomeTable
GO
但是,如果沒有ORDER BY子句,它不是很適合可愛(結果的順序不能保證)。
Oops變量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
是停止所述給定查詢之前處理的行數(整數)。
您不能在用戶定義的函數中使用set rowcount – Seibar 2008-12-08 17:35:07
......這很荒謬。 ;) – Jake 2008-11-12 16:27:45