Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Portée de Set rowcount dans SQL

Contrairement à la réponse acceptée dans la question liée dans les commentaires pour autant que je sache, les règles de portée pour cela sont exactement les mêmes que celles pour #temp visibilité du tableau. Il se propage aux lots enfants, mais lorsque le lot se termine, il est réinitialisé à la valeur précédente.

CREATE PROC #bar
AS
SELECT * FROM sys.objects
EXEC ('SELECT * FROM sys.objects')
GO

CREATE PROC #foo
AS
SET ROWCOUNT 1

EXEC #bar
GO

SET ROWCOUNT 4
EXEC #foo /*Returns 2 resultsets with 1 row*/
EXEC #bar /*Returns 2 resultsets with 4 rows*/

DROP PROC #foo
DROP PROC #bar