以下情况如何起作用?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