Estamos actualizando nuestro entorno de prueba con un nuevo servidor y una versión actualizada de Microsoft SQL Server y hemos tenido un problema.
En el nuevo servidor, nuestro antiguo código obtendrá "no se permite la operación cuando el objeto está cerrado" al ejecutar algunos procedimientos almacenados. Este mensaje nunca apareció en el antiguo servidor. Cuando lo rastreamos, el problema se puede resolver agregando SET NOCOUNT ON;
al procedimiento almacenado.
Observé los valores predeterminados en la base de datos y no vi configuraciones diferentes (SQL Server 2008 vs SQL Server 2014) relacionadas con los valores predeterminados.
¿Qué configuración debería tener en cuenta para resolver esto globalmente sin necesidad de agregar SET NOCOUNT ON
a mil procesos almacenados?
SET NOCOUNT ON;
al comienzo del procedimiento almacenado (después BEGIN
). El número de procedimientos almacenados realmente no debería ser un problema.
BEGIN
, es bueno, pero no es obligatorio.
SET NOCOUNT ON;
, siempre.