以下哪项不起作用?
CREATE FUNCTION Test (@top integer)
RETURNS TABLE
AS
RETURN
SELECT TOP @top * FROM SomeTable
GO
我只是希望能够指定要返回的结果数。 [SQL Server 2000。]
谢谢!
答案 0 :(得分:5)
对于MS SQL 2000,您可以使用:
CREATE FUNCTION Test (@top integer)
RETURNS TABLE
AS
SET ROWCOUNT @top
RETURN SELECT * FROM SomeTable
答案 1 :(得分:2)
SQL Server 2005中添加了对此的支持,但它在2000年不可用。您必须使用(颤抖)动态sql或其他一些数字技巧。
答案 2 :(得分:1)
创建功能测试(@top integer)
退货表
AS
返回
SELECT TOP(@top)* FROM SomeTable
GO
但是没有ORDER BY子句它没有意义(不保证结果的顺序)。
答案 3 :(得分:0)
在SQL Server 2000中无法使用变量TOP。任何版本都不支持动态SQL。
答案 4 :(得分:0)
杰克,尝试将rowcount设置为您的函数参数,然后进行选择。我没试过,YMMV。
来自:http://msdn.microsoft.com/en-us/library/aa259189(SQL.80).aspx
语法
SET ROWCOUNT { number | @number_var }
Arguments
number | @number_var
在停止给定查询之前要处理的行数(整数)。