SET ROWCOUNT (Transact-SQL)

Demande à SQL Server d'arrêter l'exécution de la requête après avoir renvoyé le nombre de lignes spécifié.

Icône Lien de rubriqueConventions de syntaxe de Transact-SQL

Syntaxe

SET ROWCOUNT { number | @number_var } 

Arguments

number| **@**number_var

Nombre (entier) de lignes à traiter avant l'arrêt de la requête spécifiée.

Notes

ms188774.note(fr-fr,SQL.90).gifImportant :
L'utilisation de SET ROWCOUNT n'affectera en rien les instructions DELETE, INSERT et UPDATE dans la prochaine version de SQL Server. Évitez d'utiliser SET ROWCOUNT conjointement avec les instructions DELETE, INSERT et UPDATE dans les nouveaux travaux de développement et envisagez de modifier les applications qui y ont actuellement recours. Il est, en outre, recommandé de réécrire, selon la syntaxe TOP, les instructions DELETE, INSERT et UPDATE qui utilisent actuellement SET ROWCOUNT. Pour plus d'informations, consultez DELETE (Transact-SQL), INSERT (Transact-SQL) ou UPDATE (Transact-SQL).

La valeur de l'option SET ROWCOUNT est ignorée pour les instructions INSERT, UPDATE et DELETE impliquant des tables distantes et des vues partitionnées locales et distantes.

Pour désactiver cette option de manière à renvoyer toutes les lignes, utilisez SET ROWCOUNT 0.

ms188774.note(fr-fr,SQL.90).gifRemarque :
L'utilisation de l'option SET ROWCOUNT arrête le traitement de la plupart des instructions Transact-SQL lorsqu'elles ont atteint le nombre de lignes spécifié, y compris les déclencheurs et les instructions de modifications des données tels que INSERT, UPDATE et DELETE. L'option ROWCOUNT n'a aucun effet sur les curseurs dynamiques, mais elle limite l'ensemble de lignes de curseurs de type KEYSET et INSENSITIVE. Cette option doit être utilisée avec précaution et essentiellement avec l'instruction SELECT.

SET ROWCOUNT a priorité sur le mot clé TOP d'une instruction SELECT si le compte de lignes a la plus petite valeur.

L'option SET ROWCOUNT est ignorée dans les instructions INSERT, UPDATE et DELETE lorsqu'une expression TOP est explicitement utilisée dans la même instruction. Il en va de même pour les instructions où INSERT s'accompagne d'une clause SELECT.

L'option SET ROWCOUNT est définie lors de l'exécution, et non pas durant l'analyse.

Autorisations

Nécessite l'appartenance en tant que membre au rôle public.

Exemple

SET ROWCOUNT arrête le traitement après le nombre de lignes spécifié. Dans cet exemple, notez que 545 lignes répondent aux critères de Quantity inférieure à 300. Toutefois, d'après le nombre de lignes renvoyé par la mise à jour, vous pouvez constater que toutes les lignes n'ont pas été traitées. ROWCOUNT affecte toutes les instructions Transact-SQL.

USE AdventureWorks;
GO
SELECT count(*) AS Count
FROM Production.ProductInventory
WHERE Quantity < 300;
GO

Voici l'ensemble des résultats.

Count       
----------- 
537          

(1 row(s) affected)

Maintenant, définissez ROWCOUNT à 4 et mettez à jour toutes les lignes avec une Quantity inférieure à 300.

SET ROWCOUNT 4;
UPDATE Production.ProductInventory
SET Quantity = 400
WHERE Quantity < 300;
GO
(4 row(s) affected)

Voir aussi

Référence

SET (Transact-SQL)

Aide et Informations

Assistance sur SQL Server 2005