2008-11-12 7 views

Répondre

5

Pour MS SQL 2000, vous pouvez utiliser:

CREATE FUNCTION Test (@top integer) 

RETURNS TABLE 

AS 

SET ROWCOUNT @top 

RETURN SELECT * FROM SomeTable 
2

La prise en charge de cette fonctionnalité a été ajoutée à SQL Server 2005, mais elle n'est pas disponible en 2000. Vous devez utiliser (dynamique) sql dynamique ou un autre astuce numérique.

+0

... c'est ridicule. ;) – Jake

1

CREATE FUNCTION test (nombre entier @Top)

RETOURS TABLE

AS

RETURN

SELECT TOP (@Top) * FROM SomeTable

GO

Cependant, sans clause ORDER BY, ce n'est pas très eanful (l'ordre des résultats n'est pas garanti).

0

Oops une variable TOP n'est pas disponible dans SQL Server 2000. SQL dynamique n'est pas pris en charge dans aucune version.

0

Jake, essayez de régler le nombre de lignes à votre paramètre de fonction et faire ensuite votre sélection. Je n'ai pas essayé ça, YMMV.

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

Syntaxe

SET ROWCOUNT { number | @number_var } 
Arguments 

number | @number_var 

correspond au nombre (un entier) de lignes à traiter avant d'arrêter la requête donnée.

+0

Vous ne pouvez pas utiliser set rowcount dans une fonction définie par l'utilisateur – Seibar

Questions connexes