Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Umfang von Set rowcount in SQL

Entgegen der akzeptierten Antwort in der in den Kommentaren verlinkten Frage Soweit ich sehen kann, sind die Bereichsregeln dafür genau die gleichen wie für #temp Sichtbarkeit der Tabelle. Er wird an untergeordnete Batches weitergegeben, aber wenn der Batch beendet wird, wird er auf den vorherigen Wert zurückgesetzt.

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