none
Socorro! Encontrei um bug no SQL Management Studio??? RRS feed

  • Pergunta

  • Boa tarde galera.

    Estou utilizando o SQL Server 2014 express (v12.0.2269.0) em um Windows7.

    Tenho um pequeno código que deleta (se existir) e cria uma Procedure.

    Quando seleciono apenas uma e executo, beleza. Mas quando seleciono as duas para executarem juntas recebo o seguinte erro:

    Erro fatal de script.
    Sintaxe incorreta encontrada ao analisar GO.

    Quando busco por esse "Sintaxe incorreta encontrada ao analisar GO." no Google não encontro nem 1 referenciazinha.

    Que raio de erro é esse? E se eu retiro o GO também recebo um erro:

    CREATE/ALTER PROCEDURE' deve ser a primeira instrução em um lote de consultas.

    Seguem meu código e as imagens com o erro apenas quando executo tudo junto:

    --Apaga se existir
    IF OBJECT_ID('INDICADORES_RECEITASExcluirTudo') IS NOT NULL
    BEGIN
    DROP PROCEDURE [dbo].[INDICADORES_RECEITASExcluirTudo]
    END
    GO
    
    CREATE PROCEDURE [dbo].[INDICADORES_RECEITASExcluirTudo]
    @flag bit output,-- retorna 0 se falhar,1 se sucesso
    @erro nvarchar(max) output -- retorna menssagem de erro
    AS
    DECLARE
    @sql nvarchar(max),-- retorna a Query SQL
    @IDENT int-- Ocupa parametro que retorna @@IDENTITY para INSERT
    
    BEGIN
    --Chama a procedure que executa a query
    SET @sql = 'DELETE INDICADORES_RECEITAS'
    EXEC ExecutaQuery @flag output, @IDENT output, @erro output, @sql, 'INDICADORES_RECEITASExcluirTudo'
    END
    GO
    SemErro1

    Sem Erro 2

    Com Erro


    • Editado Alam MaserSistema segunda-feira, 31 de julho de 2017 17:15 melhorar explicação do problema
    segunda-feira, 31 de julho de 2017 14:59

Respostas

  • Então pessoal... eu li que poderia ser algum caractere não printável próximo ao GO que estaria causando o problema. Não tenho certeza e é isso, mas eu redigitei a query, juro por Deus que não mudei nada... nem uma virgula... E parou de acusar o erro.

    Não é a primeira vez que acontece... postei aqui na esperança e descobrir o que é, porque a query completa tem mais de 2000 linhas, criando todas as procedures do banco. E ficar redigitando trechos as vezes longos é uma solução inviável. 

    Em fim resolvi o problema por hora, mas não faço ideia do que causou o problema.

    terça-feira, 1 de agosto de 2017 10:54

Todas as Respostas

  • Alam,

    O Banco de Dados e o Management Studio estão na mesma versão? Inclusive com os mesmos Updates e Service Pack?

    Se não estiverem, tente compatibilizar os dois e tentar a execução da sua query novamente.

    A disposição,

    Marcos Roberto de Lima
    MCT-MCTS-MCITP-MCP

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    segunda-feira, 31 de julho de 2017 15:01
  • Olá marcos! Desculpe se dei a entender que eram versões diferentes.

    Ambos estão na:

    Microsoft SQL Server 2014 - 12.0.2269.0 (Intel X86) 
    Jun 10 2015 03:19:53 
    Copyright (c) Microsoft Corporation
    Express Edition on Windows NT 6.1 <X86> (Build 7601: Service Pack 1).

    Não creio que seja esse o problema...


    segunda-feira, 31 de julho de 2017 16:02
  • Alam,

    Já vi um problema desses e realmente estava relacionado a diferenças de build do Cliente e do Server.

    Você tentou executar esse procedimento diretamente na console do servidor através do Query Analyzer do Servidor?

    Se não, tente fazer isso e nos informe qual foi o resultado.

    A disposição,

    Marcos Roberto de Lima
    MCT-MCTS-MCITP-MCP

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    segunda-feira, 31 de julho de 2017 18:40
  • Deleted
    • Sugerido como Resposta Fabiano Inácio terça-feira, 1 de agosto de 2017 15:00
    segunda-feira, 31 de julho de 2017 22:15
  • Então pessoal... eu li que poderia ser algum caractere não printável próximo ao GO que estaria causando o problema. Não tenho certeza e é isso, mas eu redigitei a query, juro por Deus que não mudei nada... nem uma virgula... E parou de acusar o erro.

    Não é a primeira vez que acontece... postei aqui na esperança e descobrir o que é, porque a query completa tem mais de 2000 linhas, criando todas as procedures do banco. E ficar redigitando trechos as vezes longos é uma solução inviável. 

    Em fim resolvi o problema por hora, mas não faço ideia do que causou o problema.

    terça-feira, 1 de agosto de 2017 10:54
  • Alam,

    Muito bom que resolveu!!

    Ficamos a disposição.

    A disposição,

    Marcos Roberto de Lima
    MCT-MCTS-MCITP-MCP

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    terça-feira, 1 de agosto de 2017 12:37