Estamos atualizando nosso ambiente de teste com um novo servidor e uma versão atualizada do Microsoft SQL Server e encontramos um problema.
No novo servidor, nosso código antigo receberá "operação não permitida quando o objeto é fechado" ao executar alguns procedimentos armazenados. Esta mensagem nunca apareceu no servidor antigo. Quando o rastreamos, o problema pode ser resolvido adicionando- SET NOCOUNT ON;
se ao procedimento armazenado.
Analisei os padrões no banco de dados e não vi configurações diferentes (SQL Server 2008 vs SQL Server 2014) relacionadas a padrões.
Que configuração devo procurar para resolver isso globalmente sem a necessidade de adicionar SET NOCOUNT ON
a mil procs armazenados?
SET NOCOUNT ON;
no início do procedimento armazenado (depois BEGIN
). O número de procedimentos armazenados não deve ser realmente um problema.
BEGIN
- é legal, mas não obrigatório.
SET NOCOUNT ON;
, sempre.