Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Escopo de Definir contagem de linhas no SQL


Ao contrário da resposta aceita na pergunta vinculada nos comentários até onde posso ver, as regras de escopo para isso são exatamente as mesmas de #temp visibilidade da mesa. Ele se propaga para lotes filhos, mas quando o lote sai, ele é redefinido para o valor anterior.
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