2008-11-12 38 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