Sql server - les différentes méthodes pour faire un limit sous sql server

Soyez le premier à donner votre avis sur cette source.

Snippet vu 7 353 fois - Téléchargée 26 fois

Contenu du snippet

Tout le monde connait bien le TOP sous SQL Server, mais il possède un problème, car il est difficilement utilisable dans une procédure stockée ou le nombre de résultats doit être variable.
Voila donc une vision de quelques solutions existantes.

Source / Exemple :


DECLARE @Limit 	AS INT
SET @Limit =	3

---------------------------------------------
-- Activation de la limite RowCount
SET ROWCOUNT 	@Limit

---------------------------------------------
-- Requette utilisant la limite fixée
SELECT 
	*
FROM
	dbo.Employees
ORDER BY
	LastName;

---------------------------------------------
-- Malgré le TOP fixé à 7, c'est le ROWCount qui est prioritaire
SELECT 
	TOP 7	*
FROM
	dbo.Employees
ORDER BY
	LastName;

---------------------------------------------
-- Annulation de la limite
SET ROWCOUNT 0

---------------------------------------------
-- Selection avec un TOP pour controler que la limite ne soit plus gérée
SELECT 
	TOP 7	*
FROM
	dbo.Employees
ORDER BY
	LastName;

---------------------------------------------
-- Pour utiliser le paramètre de la limite dans un TOP
DECLARE @SQL	AS VARCHAR(8000)

SET @SQL = 'SELECT TOP '+ CONVERT(VARCHAR(5), @Limit) +' * FROM dbo.Employees ORDER BY LastName';

EXECUTE (@SQL);
---------------------------------------------

Conclusion :


Bon coding

Romelard Fabrice

A voir également

Ajouter un commentaire

Commentaires

cs_jimmy69
Messages postés
787
Date d'inscription
dimanche 22 décembre 2002
Statut
Membre
Dernière intervention
27 novembre 2008
-
Salut salut Fab,

tu peux pas savoir comme ton code aurait pu m'aider l'an passe ! J'ai galere un max sur un projet php + Ms sql serveur 2000 !

Pour arriver a faire la fonction limit de mysql sous microsoft j'ai suivi cet exemple mais avant d'y arriver je galerais !

http://www.devparadise.com/technoweb/code/sql/a453.php

Merci pour tes nombreuses sources ...

A bientot ...
Christophe
khaledkaa
Messages postés
3
Date d'inscription
lundi 21 décembre 2009
Statut
Membre
Dernière intervention
30 mars 2010
-
Merci pour c sources

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.