off - set nocount on sql server para que sirve
¿Es "SET NOCOUNT OFF" necesario en un procedimiento almacenado? (3)
solo si no quieres ver
(1 row(s) affected) // or n rows....
la mayor parte del tiempo, cuando depura
y utilizas el comando de impresión, por lo que quieres ver tu propio texto puro, así que es una buena práctica.
editar
no afecta el resultado de su consulta (activada o desactivada, no importa), si eso es lo que pregunta. (gracias JNK).
Tengo muchos procedimientos que han set nocount on
.
¿Es necesario apagarlo al final del procedimiento almacenado?
p.ej:
create procedure DummyProc
as
begin
set nocount on
...
set nocount off
end
set nocount on
deshabilitará las X rows affected.
mensaje SQL devuelve. Este mensaje se suprime, en algunos casos, debido a los efectos no deseados con el cliente que ejecuta el proceso almacenado.
set nocount off
esta supresión. Sin embargo, set nocount on
es una configuración de ámbito, y de forma predeterminada, se desactivará al salir del alcance de todos modos.
Ahora, ¿no es necesario set nocount off
? No, ya que los nuevos comandos ejecutados estarán en un ámbito diferente, y de manera predeterminada set nocount off
siempre está vigente. Pero como se indicó anteriormente en los comentarios, se considera una buena práctica, solo para indicar explícitamente que esta configuración volverá a la normalidad cuando el proceso haya terminado de ejecutarse.
Sé que esta es una publicación bastante antigua, pero fue el primer éxito en Google cuando busqué la respuesta. La respuesta anterior para probarla fue una muy buena idea.
Probé esto y quise actualizar el anterior con algunos detalles adicionales.
El alcance que crea con SET NOCOUNT ON fluye a cualquier proceso que llame su procedimiento. Entonces, si su procedimiento establece SET NOCOUNT ON y luego llama a un sproc, ese sproc obtiene su configuración SET NOCOUNT. La configuración SE APAGA cuando sale de su sproc, pero la configuración fluye hacia los llamados sprocs. Si configura NOCOUNT dentro del sproc LLAMADO, el sproc externo tendrá el SET NOCOUNT que configuró y el sproc interno no afectará el sproc externo.
Así que creo que realmente no necesitas reiniciarlo al final de tu sproc porque tus configuraciones nunca fluirán fuera de tu sproc hacia arriba; sin embargo, si su sproc depende de la configuración, debe configurarla antes de que la necesite, ya que si recibe una llamada de otra sproc, podría tener una configuración diferente de la que usted supone.