Usuário com melhor resposta
Cursor no SQL Server 2012

Pergunta
-
Boa tarde,
Estou com problema com cursor. Quando executo com SELECT TOP 10000, executa sem erro, porém quando tento executar direto ocorre o erro
"Could not complete cursor operation because the table schema changed after the cursor was declared."
Alguém tem alguma ideia?
Obrigado !
Segue codigo:
DECLARE @ID INT, @CNPJ VARCHAR(8), @RETORNO VARCHAR(MAX)
DECLARE cursorSerasaDet CURSOR LOCAL FOR
SELECT ID_PESQUISA, CNPJ, RETORNO FROM db_financeiro.dbo.TB_SERASA_PESQUISA (NOLOCK)
WHERE
(
RETORNO LIKE '%L040102%'
/* RETORNO LIKE '%L040201%' OR
RETORNO LIKE '%L040301%' OR
RETORNO LIKE '%L040401%' OR
RETORNO LIKE '%L040501%' OR
RETORNO LIKE '%L040601%' OR
RETORNO LIKE '%L040701%' OR
RETORNO LIKE '%L040801%' OR
RETORNO LIKE '%L040901%' OR
RETORNO LIKE '%L041001%' OR
RETORNO LIKE '%L041101%'*/
)
AND RETORNO NOT LIKE '#INI%'
OPEN cursorSerasaDet
FETCH NEXT FROM cursorSerasaDet INTO @ID, @CNPJ, @RETORNO
WHILE @@FETCH_STATUS = 0
BEGIN
EXECUTE db_financeiro.dbo.PC_RELATO_ATUAL_2 @CNPJ, @ID, @RETORNO;
EXECUTE db_financeiro.dbo.PC_RELATO_HISTORICO_2 @CNPJ, @ID, @RETORNO;
FETCH NEXT FROM cursorSerasaDet INTO @ID, @CNPJ, @RETORNO;
END
CLOSE cursorSerasaDet
DEALLOCATE cursorSerasaDet
Respostas
-
Deleted
- Sugerido como Resposta Durval RamosModerator segunda-feira, 27 de outubro de 2014 10:53
- Marcado como Resposta Durval RamosModerator segunda-feira, 5 de janeiro de 2015 23:11
-
Johnatan,
Concordo plenamente com o Jose.Diz nas observações que ele esta destacando.
Eu particularmente utilizaria a System Stored Procedure SP_Recompile para forçar a atualização de Plano de Execução da sua Tabela antes de fazer qualquer alteração no Cursor.
Agora vale também avaliar e verificar senão ocorreu alguma alteração nas definições da sua tabela, dentre ela o nome do Schema.
Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | SoroCódigos] @JuniorGalvaoMVP | pedrogalvaojunior.wordpress.com
- Sugerido como Resposta Durval RamosModerator segunda-feira, 27 de outubro de 2014 10:53
- Marcado como Resposta Durval RamosModerator segunda-feira, 5 de janeiro de 2015 23:11
Todas as Respostas
-
-
Deleted
- Sugerido como Resposta Durval RamosModerator segunda-feira, 27 de outubro de 2014 10:53
- Marcado como Resposta Durval RamosModerator segunda-feira, 5 de janeiro de 2015 23:11
-
Johnatan,
Concordo plenamente com o Jose.Diz nas observações que ele esta destacando.
Eu particularmente utilizaria a System Stored Procedure SP_Recompile para forçar a atualização de Plano de Execução da sua Tabela antes de fazer qualquer alteração no Cursor.
Agora vale também avaliar e verificar senão ocorreu alguma alteração nas definições da sua tabela, dentre ela o nome do Schema.
Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | SoroCódigos] @JuniorGalvaoMVP | pedrogalvaojunior.wordpress.com
- Sugerido como Resposta Durval RamosModerator segunda-feira, 27 de outubro de 2014 10:53
- Marcado como Resposta Durval RamosModerator segunda-feira, 5 de janeiro de 2015 23:11
-